-
Notifications
You must be signed in to change notification settings - Fork 1.2k
[Scheduler Enhancement] Consider binding action when creating or recovering queue. #5267
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
Conversation
Codecov Report
@@ Coverage Diff @@
## master #5267 +/- ##
==========================================
- Coverage 80.09% 75.27% -4.82%
==========================================
Files 238 238
Lines 14080 14087 +7
Branches 576 569 -7
==========================================
- Hits 11277 10604 -673
- Misses 2803 3483 +680
Continue to review full report at Codecov.
|
LGTM |
@@ -397,7 +400,7 @@ class QueueManager( | |||
logging.warn( | |||
this, | |||
s"[${msg.activationId}] the activation message has not been scheduled for ${queueManagerConfig.maxSchedulingTime.toSeconds} sec") | |||
completeErrorActivation(msg, "The activation has not been processed") | |||
completeErrorActivation(msg, "The activation has not been processed: too old activation is arrived.") |
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.
completeErrorActivation(msg, "The activation has not been processed: too old activation is arrived.") | |
completeErrorActivation(msg, "The activation has not been processed due to timeout waiting for processing in the scheduler.") |
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.
Not sure this effectively describes the case.
This is the case that activations arrived after the max scheduling wait time.
For example, this can happen when there was a failure in Kafka so activations could not be delivered and just stored in it. When Kafka becomes available again, it will start delivering activations.
But if it took so much time to restore Kafka such as 1 hour, it will send too old(1 hour-old) activations.
Also, if there were many activations stored in Kafka before the failure, it would cause a thundering herd by sending them all at the same time. So we complete them with an error.
Description
Currently, binding action is not properly considered while creating or recovering queues.
It makes throttling for package actions work in an original namespace and actions from different namespaces share the same throttling limit.
This change will address the issue.
Related issue and scope
My changes affect the following components
Types of changes
Checklist: