Başarısız otomasyon: yeniden denemeden önce neleri kontrol etmeli?
Zaman aşımı, işlemin başarısız olduğunu kanıtlamaz. Zaman çizelgesi ve olay formuyla sonucu doğrulayın; yeniden denemeden önce kalan işi belirleyin.
TL;DR: Bir otomasyonu yeniden denemeden önce, eylemin hedefte zaten gerçekleşip gerçekleşmediğini kontrol edin. Bir zaman aşımı (timeout) yalnızca zamanında bir yanıtın eksik olduğunu bildirir. İşlemin kimliğini, denemeleri ve mevcut kanıtları koruyun. Yalnızca sağlayıcının sözleşmesi kapsamındaki bekleyen işleri devam ettirin; belirsiz sonuçları incelemeye bırakın.
Önemli noktalar
- Tamamlamak istediğiniz işlemi, her bir yürütme girişiminden ayırın.
- Hedefte onaylanmış bir kayıt, otomasyon aracının kırmızı renginden daha ağırdır.
- İdempotens bir kapsama ve süreye sahiptir; tüm akışı kendi başına korumaz.
İçindekiler
Bir otomasyon hata veriyor ve birisi «Yeniden Dene» tuşuna basmayı öneriyor. Önce daha somut bir soruyu yanıtlamak gerekir: Ne yapılması gerekiyor? Eylem, onayı veya sonraki bir adım eksik olabilir. Tüm akışı tekrarlamak bu durumlardan biri için işe yarar ve diğerlerini kötüleştirebilir.
Bir kurucu veya küçük bir ekip için, entegrasyonu kuran kişi olmasa bile araştırma devam edebilmelidir. Bu kılavuz, doğrulanmış olanı bilinmeyenden ayırmak için bir zaman çizelgesi ve bir olay kayıt formu sunmaktadır. Örnek kurgusaldır: Frihet’e ait bir olayı tanımlamaz veya gerçek hizmetler, müşteriler veya kimlik bilgileri kullanmaz.
Ekran Hatası ve İşin Durumu
Bir timeout, bir beklemenin zamanında bir yanıt olmadan sona erdiğini gösterir. Kendi başına hedefin bir şey kaydedip kaydetmediğini anlamaya izin vermez. AWS bu sorunu talep eden kişinin onay almamasına rağmen bir kaynak oluşturmuş olabilecek bir istekle açıklar. Bu belirsizliği çözmek, etkiyi ve kaynağını tanımlamayı gerektirir.
Üç durumla çalışın: onaylanmış etki, onaylanmış etki yokluğu ve bilinmiyor. «Ekranımda görünmüyor» ifadesi, filtreler, başka bir hesap, gecikmiş bir dizin veya hala aktif bir yürütme olabileceği sürece üçüncü duruma aittir. Ayrıca durumu kimin ve saat kaçta kontrol ettiğini de not alın: bir gözlem bağlama sahiptir, sonsuz geçerliliğe sahip değildir.
Kararı Değiştiren Bir Zaman Çizelgesi
Dahili bir görev oluşturan ve ardından referansını bir takip sayfasına kaydeden bir akış olduğunu varsayalım. Aşağıdakilerin hepsi varsayımsaldır. Zamanlar aynı simüle edilmiş saati kullanır; gerçek bir araştırmada her zaman damgasının zaman dilimini ve kaynağını koruyun.
| Saat | Kurgusal Kanıt | Neyi Kanıtlar |
|---|---|---|
09:00:00 | ATT-DEMO-A denemesi OP-DEMO-X işlemini gönderir. | Bir görev oluşturulmaya çalışıldı; henüz sonucu kanıtlamaz. |
09:00:02 | Hedefin kaydı, OP-DEMO-X ile ilişkilendirilmiş TASK-DEMO-T’yi kaydeder. | Görev o işlem için oluşturuldu. |
09:00:10 | Otomasyon aracı zaman aşımı (timeout) kaydeder. | Beklemesi içinde onay almadı. |
09:02:00 | Yetkili bir okuma, TASK-DEMO-T’yi ve orijinal referansını alır. | Etki hala mevcut ve istenenle eşleşiyor. |
09:03:00 | Sayfa referansı içermiyor; yürütme kaydı o adımın başlamadığını gösteriyor. | Takip eksik, görevin oluşturulması değil. |
Bir sonraki adım, belgelenmiş prosedürü kullanarak takibi kurtarmaktır. «Görev oluştur» adımından yeniden başlatmak, zaten çözülmüş bir şeye tekrar dokunmak anlamına gelir. Eğer son satır sadece «sayfada görmüyorum» deseydi, oraya yazmadan önce yine de gecikme, filtre veya aktif bir süreç olasılığını elememiz gerekirdi.
İşlem referansı sabit kalır; deneme tanımlayıcısı her yürütmede değişir. Alınan bir olay ve oluşturulan bir görev de farklı kimliklere sahiptir. Aynı işin iki denemesini iki meşru iş ile karıştırmamak için ilişkilerini koruyun.
Başka Birinin Devam Edebileceği Bir Kayıt Formu Tutun
Mevcut kayıtları koruyarak ve bu akış için öngörülen duraklatma mekanizmasıyla yeni yazma işlemlerini durdurarak başlayın. Bir duraklatma, yürütülenleri geri almaz veya halihazırda devam eden istekleri durdurmayı garanti etmez. Başka kimsenin işlem yapmayacağını varsaymadan önce kuyruğu ve bekleyen yeniden denemeleri kontrol edin.
Bu formu uygun erişime sahip dahili bir kayda kopyalayın. Paylaşılan belgelere sırları veya kişisel verileri yapıştırmaktan kaçınarak kanıtlara referanslar kullanın. Her düzeltme, önceki gözlemi silmeden tarihle eklenmelidir.
Olay: [dahili referans]İstenen işlem: [tek ve somut bir sonuç]Sağlayıcı / hesap / ortam: [hedefin bağlamı]İşlem / olay / denemeler: [ID'ler ve ilişkiler]Akışın versiyonu: [çalıştırılan versiyon]Onaylanan son adım: [kanıt ve zaman dilimiyle birlikte saat]Etkinin durumu: [onaylandı / onaylanmış yokluk / bilinmiyor]Hedefin kanıtı: [referans, sorgu ve görünürlük sınırları]Hala aktif olan iş: [istekler, kuyruk ve bekleyen yeniden denemeler]Yeniden deneme sözleşmesi: [dokümantasyon, kapsam ve zaman aralığı]Eksik veri: [karar vermek için gerekli kanıt]Sonraki eylem: [sınırlı sorgu veya kurtarma]Sorumlu / sonraki inceleme: [kişi ve tarih]Sonraki sonuç: [yeni kanıt, önceki kaydın üzerine yazmadan]«Onaylanmış yokluk», boş bir aramadan daha güçlü bir kanıt gerektirir: örneğin, hedefin belgelediği yürütme öncesi bir ret ve diğer denemelerin de herhangi bir sonuç üretmediğinin doğrulanması. Bu durumu haklı çıkaramıyorsanız, «bilinmiyor» olarak tutun.
İdempotens Anahtarının Sınırları Vardır
Belirli istek, hesap ve ortam için sağlayıcının sözleşmesini kontrol edin. Bir yazma işlemini koruyan bir anahtar, sonraki bir bildirimi veya başka bir hizmeti otomatik olarak korumaz. Ayrıca, anahtar olmadan zaten gönderilmiş bir isteğe geriye dönük olarak eklenemez. Form, yalnızca «idempotensimiz var» demek yerine ilgili dokümantasyonu bağlantılamalıdır.
Stripe’da, idempotens istekler — API v1, 500 hataları da dahil olmak üzere ilk yürütmenin kaydedilmiş sonucunu yeniden kullanır. Stripe parametreleri karşılaştırır ve anahtarları en az 24 saat sonra silebilir; silinmiş bir anahtarı yeniden kullanmak başka bir isteği başlatır. Hata kılavuzu, 500 sonrası olası etkiler hakkında uyarıda bulunur: anahtarı değiştirmek veya süresinin dolmasını beklemek, belirsiz bir eylemi tekrarlamanın güvenli olduğunu kanıtlamaz.
Yukarıdaki süre Stripe’a aittir. Başka bir hedef için, kendi zaman aralığını, tekrarlandığını düşündüğü kimliği ve eşzamanlı isteklerin işlenişini not edin. Bir kurtarma işlemi parametreleri değiştirmeyi gerektiriyorsa, bunu önceki etkilerin gözden geçirilmesiyle birlikte yeni bir karar olarak ele alın.
Kanıtlardan Yola Çıkarak, Adım Adım Karar Verin
Aşağıdaki tablo, evrensel bir sağlayıcı politikası değil, önerilen bir işletim kriteridir. Araştırmayı, veri değiştirme yetkisinden ayırın.
| Kontrol Ettikleriniz | Sonraki Karar |
|---|---|
| Doğru etki zaten mevcut ve o işleme ait. | Referansını koruyun; sadece güvenli bir prosedürü olan bekleyen adımları kurtarın. |
| Hiçbir aktif deneme olmadan gerçekleşmediğine dair kanıt var. | İşin hala gerekli olduğunu yeniden doğrulayın ve sağlayıcının yetkilendirdiği yeniden denemeyi uygulayın. |
| Hala bilinmiyor, ancak aynı isteği kurtarmak için belgelenmiş bir mekanizma mevcut. | Mevcut yetkilendirme dahilinde kullanmadan önce orijinal anahtarı, parametreleri, kapsamı ve geçerliliği doğrulayın. |
| Hala bilinmiyor ve bazı koşullar eksik. | Duraklamayı sürdürün ve bekleyen sorguyu atayın; hatadan çıkmak için başka bir işlem oluşturmayın. |
| Çift kayıtlar veya uyumsuz etkiler var. | Kanıtları koruyun ve incelenebilir bir düzeltme hazırlayın; kayıtları sezgiyle silmeyin. |
Geri alınamaz veya yüksek etkili yazma işlemleri, önerilen kurtarma işleminin insan tarafından incelenmesini gerektirir. Ne bir anahtar ne de yeşil bir düğme, tüm yolculuk boyunca «tam olarak bir kez» garantisi sunar.
Kimin Yeniden Deneyeceğini de Kontrol Edin
Otomasyon aracı, API istemcisi ve sağlayıcının kendi yeniden denemeleri olabilir. Stripe web kancalarında (webhooks), manuel bir yeniden gönderme otomatik yeniden denemeleri iptal etmez; ayrıca olaylar tekrarlanabilir ve sırasız gelebilir. Bir olayı yeniden göndermek, bir API yazma işlemini idempotens bir şekilde tekrarlamakla eşdeğer değildir: bunlar farklı mekanizmalardır.
Formu kapatmadan önce hedefin mevcut durumunu, bekleyen adımları ve sonradan gelebilecek denemeleri kontrol edin. Bir sonraki yürütmeyi kimin gözlemleyeceğini belirleyin. Formu kapatmak, işi çözmekle eşdeğer değildir: eğer bilinmeyen bir sonuç kalıyorsa, sorumlusu ve inceleme tarihi ile olayı açık tutun.
Daha sonra, akışın gereksiz işleri kaldırma, otomatikleştirme ve devretme yaklaşımı (İngilizce) kriteriyle otomatikleştirilmeye devam etmeyi hak edip etmediğini gözden geçirebilirsiniz. Eğer Frihet bağlantısı varsa, ilgili arayüzü bulmak için geliştirici dokümantasyonu ve entegrasyon kataloğu kısmından başlayın. Bu formu akışın yanında saklayın: bir sonraki kişi, son kontrol edilmiş durumu bir sohbetten yeniden oluşturmak zorunda kalmadan bulabilmelidir.
14 Eylül 2026 tarihinde başvurulan teknik kaynaklar. Formlar, kararlar ve DEMO referansları kendi eğitim önerilerimizdir; gerçek bir hizmette değişiklikleri uygulamak için talimatlar değildir.
Bu makale faydalı oldu mu?
Sıkça sorulan sorular
Bir zaman aşımı, otomasyonun hiçbir şey yapmadığı anlamına mı gelir?
Hayır. Yanıtı bekleyen kişinin beklemeyi bıraktığı anlamına gelir. Hedef tamamlanmış olabilir, çalışmaya devam ediyor olabilir veya isteği almamış olabilir. Bir yazma işlemini tekrarlamadan önce hedefteki referanslar ve kayıtlar aracılığıyla sonucu kontrol edin.
Yeniden denemeyi açmak için başka bir idempotens anahtarı oluşturabilir miyim?
Yeni bir anahtar başka bir işlemi tanımlayabilir ve ikinci bir etkiye izin verebilir. Belgelenmiş sözleşme aynı isteği yeniden denemeye izin verdiğinde orijinal anahtarı koruyun; parametreler değişirse veya koruması sona erdiyse, devam etmeden önce araştırın.
Eylemin gerçekleşip gerçekleşmediğini kanıtlayamazsam ne yapmalıyım?
Durumu bilinmeyen olarak tutun, hangi kanıtın eksik olduğunu kaydedin ve tarihli bir inceleme atayın. Geri alınamaz veya yüksek etkili yazma işlemleri için, sorumlu kişi kurtarmaya karar vermelidir; yanıt eksikliğini tekrarlamak için izin olarak dönüştürmeyin.