-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: use message receiver io processor to correctly stop message pump during circuit breaker #444
Conversation
✅ Deploy Preview for arcus-messaging canceled.
|
src/Arcus.Messaging.Pumps.ServiceBus/AzureServiceBusMessagePump.cs
Outdated
Show resolved
Hide resolved
src/Arcus.Messaging.Pumps.ServiceBus/AzureServiceBusMessagePump.cs
Outdated
Show resolved
Hide resolved
I'm testing this a bit further and I'm getting good results; however, I now run into an issue where an exception was thrown for some reason (no idea what happened).
After this exception, I can find these traces in the logs:
When I inspect the ServiceBus queue that I'm consuming, there are no messages left in the queue. And I can like keep on reproducing that; once the last message has been processed, this exception saying that the messge lock is expired is thrown. On another attempt, when all messages were processed and new messages were sent to the queue, the MessagePump retrieved one message. these are my logs:
But afterwards, nothing happened and the messages that were in the queue , remained there. They were not being retrieved.
|
src/Arcus.Messaging.Pumps.Abstractions/Resiliency/IMessagePumpCircuitBreaker.cs
Outdated
Show resolved
Hide resolved
src/Arcus.Messaging.Pumps.Abstractions/Resiliency/DefaultMessagePumpCircuitBreaker.cs
Outdated
Show resolved
Hide resolved
src/Arcus.Messaging.Pumps.Abstractions/Resiliency/DefaultMessagePumpCircuitBreaker.cs
Outdated
Show resolved
Hide resolved
src/Arcus.Messaging.Pumps.Abstractions/Resiliency/DefaultMessagePumpCircuitBreaker.cs
Outdated
Show resolved
Hide resolved
src/Arcus.Messaging.Pumps.Abstractions/Resiliency/DefaultMessagePumpCircuitBreaker.cs
Outdated
Show resolved
Hide resolved
src/Arcus.Messaging.Pumps.Abstractions/Resiliency/DefaultMessagePumpCircuitBreaker.cs
Outdated
Show resolved
Hide resolved
src/Arcus.Messaging.Pumps.ServiceBus/AzureServiceBusMessagePump.cs
Outdated
Show resolved
Hide resolved
…b.com/arcus-azure/arcus.messaging into frgh/fix/433_unable_to_stop_processor
* processing spike * code cleanup * pr-sug: use message processing result io boolean * pr-sug: promote circuit breaker state enum to class * pr-fix: throw-if-null is not available in net-standard * pr-fix: correct usings in az service bus message pump * pr-sug: add message id context to the processing result * pr-fix: correct time-out for resiliency tests * pr-fix: remove useless dev-test * pr-fix: correct recieved message creation in unit tests * pr-fix: more stable post-assertion resilence * pr-fix: use back the message id for the message processing result * pr-sug: finishing touches on circuit breaker state transitioning * pr-fix: streamline equalization in circuit breaker state * pr-fix: let router abbandon message io circuit breaker handler * pr-sug: rename wait interval method + fix wait recovery period log * pr-fix: complete renaming in message pump * pr-sug: use transition method for open state * pr-sug: add half-open state boolean flag * pr-fix: limit processing of single message on queue * Update src/Arcus.Messaging.Pumps.Abstractions/Resiliency/IMessagePumpCircuitBreaker.cs Co-authored-by: Frederik Gheysels <[email protected]> * pr-sug: reframe summary and remarks wording in circuit breaker states * Update src/Arcus.Messaging.Pumps.Abstractions/Resiliency/IMessagePumpCircuitBreaker.cs Co-authored-by: Frederik Gheysels <[email protected]> * Update src/Arcus.Messaging.Pumps.Abstractions/Resiliency/IMessagePumpCircuitBreaker.cs Co-authored-by: Frederik Gheysels <[email protected]> * Update src/Arcus.Messaging.Pumps.Abstractions/Resiliency/IMessagePumpCircuitBreaker.cs --------- Co-authored-by: stijnmoreels <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was a long journey, and a lot of work has been done to make this work.
Thanks for your perseverance, I think we can now merge these changes :)
The
ServiceBusProcessor
was not able to be stopped within its message processing - this PR uses theServiceBusReceiver
fully with a more recent Service Bus Messaging package.