Rebus icon indicating copy to clipboard operation
Rebus copied to clipboard

SimpleRetryStrategy and AmazonSQS Transport

Open kostazol opened this issue 2 years ago • 1 comments

Hello!

Please, help me! Do I understand correct that the SimpleRertryStrategy use the InMemErrorTracker (Dictionary) with AmazonSQS Transport instead of ApproximateReceiveCount ? If I understood it correct, It means that message will be sent to error queue only if one worker get it more than maxDeliveryAttempts...

upd: I made some tests and found that the Rebus used ApproximateReceiveCount but how? I can't find where the Rebus use this attribute. I have 2 machines and 5 instances of Rebus (4 instances started on the first machine, 1 instance started on the second machine). After test 1 message was processed by 3 different instances and 2 machine, after 5 retries it was moved to error queue, but how Rebus check count of error without ApproximateReceiveCount - I don't understand.

upd2: I understood! Now the Rebus can't use DistributedErrorTracking (https://github.com/rebus-org/Rebus/issues/1025), but my SQS provider has special rules for check count of error, and I set up it the same as SimpleRertryStrategy, because of it I got this result.

kostazol avatar Mar 24 '22 10:03 kostazol

Hi @kostazol , I don't know what's wrong with me, but I didn't see this issue until now 😳

Do I understand correctly that you've figured it out yourself?

mookid8000 avatar Jun 10 '22 08:06 mookid8000

Just a note: Rebus 8 CAN use distributed error tracking (e.g. by using Azure Blobs to track failed delivery attempts), so the original issue here has now gone away. 🙂 For this reason, I am closing.

mookid8000 avatar Nov 14 '23 16:11 mookid8000

Oh, @mookid8000 I'm sorry. I also didn't see your previous message until now. Thank you for your updates and for your answer! I will try distributed error tracking.

kostazol avatar Nov 15 '23 02:11 kostazol