2016-03-23 22 views

cevap

1

Yeniden deneme ilkesi var, ancak uygulamanız iletiyi zaten aldıysa, hayır. Eğer bir şeyler ters giderse, bir daha görmeyeceksin, çünkü Lambdas eyaleti taşıdığından ... Başın dertte olabilirdin.

SNS yerine SNS'ye bakmayı düşünebilirim. Unutmayın, SQS'deki mesajlar kaldırılıncaya kadar kaldırılmayacak ve görünmez bir pencere ayarlayabilirsiniz. Bu nedenle, bir sonraki Lambda uygulamasının kalanları (ayarlarınıza bağlı olarak) bıraktığı yerden kolayca alabilirsiniz. Her Lambda, bu mesajın SQS'den kaldırılmasından sorumlu olacak ve mesajın nasıl işlendiğini biliyorsunuz.

Uygulamanız ve ihtiyaçlarınız hakkında daha fazla şey bilmeden, emin olamadım ... Ama bir bakarım. Bir program üzerinde koşan ve bir SQS kuyruğundan okunan bir "görev yöneticisi" Lambda kurdum (birden çok sıra aslında - zamanlanan iş, okunacağı sıraya bağlı olarak farklı JSON olayını geçti). Daha sonra işi uygun olan Lambda "çalışanına" iletir ve bu da bu mesajı kaldıracaktır. Çalışmayı durdurursa ... Görünmezlik süresi zaman aşımına uğrayacaktı (ve Lambdas'ın icra edebileceği şekilde 5 dakika burada kötü değil) ve bir sonraki Lambda onu alacaktı. Görev yöneticisi, ihtiyaç duyulduğu sıklıkta çalışır ve gerektiğinde kuyruğundan çok sayıda iş okurdu. Bu gerçekten, işlerinizi hangi hızda işlediğinizde tam olarak kontrol edebilmenize, kaç kez tekrar denediğinizi, vb. Kontrol etmenize yardımcı olur. Ardından, başarısız olabilecek herhangi bir şeyi yakalamak için ölü mektup kuyruğundan da yararlanabilirsiniz (şeyleri sıraya sokmak).

SNS ile bir çok esnekliğiniz var ki, SNS ile dürüst olmanız konusunda gerçekten emin değilim. SNS'e asla düşmedim, ama yine de bir yer ve zaman var ve bu yüzden tekrar daha fazla bilmeden SQS sizin için uygun olup olmadığını söyleyemedim ... Ama endişelerinizin SQS ile halledilebileceğini düşünüyorum. Uygulamanız için anlamlı ise.