Amazon SQS: İşin sonu nasıl bulunur?

Diyelim ki çok fazla işim var ve her iş birçok işçi uygulamasının üzerinde çalıştığı çok sayıda temel operasyondan oluşuyor.

Çalışanlara her operasyon için bir mesaj gönderiyorum, bu yüzden bu mesajları yakalayabilir, gerekli olanı yapabilir, ardından bir kontrol kuyruğunda bazı kontrol uygulamalarında bir mesajla bildirebilirler.

Ama bütün operasyonların bittiğini nasıl bilebilirim? SQS mesajları kullanım dışı olduğundan, "son" mesaj gönderemiyorum.

1

1 cevap

Yalnızca bu mesajların sıra dışı olabileceği, ancak çeşitli nedenlerden ötürü tamamen başarısız olabileceği göz önünde bulundurulduğunda, sorunun nedenine bağlı olarak genel olarak hem mesaj hem de işe özel seri numaraları eklersiniz.

Örneğin; Gönderdiğiniz ilk iş üç maddeden oluşur, bu yüzden iş 1-3-1, 1-3-2 ve 1-3-3. Bu varsayımsal numaralandırma şemasında İş 1, üç bölümden ve üç bölümden oluşur. Master 131 ve 133'ü aldığında işi tamamlamak için 132'yi beklediğini "bilir". Bir süre içinde almazsa, isteği yeniden gönderebilir.

Böyle bir şema isteklerinizi koruyacak ve parçaların karışmasını istemeyecek.

İyi şanslar

1
katma
Bu benim bahsettiğim üç bölümlük bir numaraydı, ama son kısmı kötü bir şekilde yazdı. 133 1-3-3 demek, üç parçalı bir mesajın üçüncü bölümünün olduğunu biliyorsunuz.
katma yazar sdg, kaynak
Yeniden detaylandırmak için - eğer 1-1000-555'iniz varsa, 1000 bölümlük bir işin 555'inin bir kısmına sahipsiniz. Umarım yardımcı olur (Yani üç ayrı alan ...)
katma yazar sdg, kaynak
Eh, # 133 bir mesaj görürsem, 132 mesajın başka bir yerde olduğunu biliyorum. Ama hala nerede bittiğini bilmiyorum - bir mesaj # 134 veya bir mesaj # 1000.
katma yazar Yuriy Zhilovets, kaynak