[18.0][IMP] queue_job: add pause option on channels - #960
Conversation
|
Hi @sbidoul, |
| self.capacity = config.get("capacity", None) | ||
| self.sequential = bool(config.get("sequential", False)) | ||
| self.throttle = int(config.get("throttle", 0)) | ||
| self.paused = int(config.get("paused", False)) |
Add a new "paused" option on channel configuration. A paused channel is equivalent to a channel with no capacity: it yields no job and also blocks all its subchannels. It still needs a restart of the jobrunner, so it does not allow dynamic pause/resume, but hot reload may be added later in #765. It still is an improvement over setting the capacity at 0, because it keeps the capacity in the configuration (removing the option in the config restores the initial capacity). Also, it does not require changing the channel of a job, which is an issue when resuming paused jobs (they should go back to their former channel to be resumed with their expected properties related to capacity/sequential/throttle).
83f72e6 to
621a998
Compare
|
loving the idea. are we able to pause and got it applied right away or would it require a restart? |
@hoangtrann right now it needs a restart. Trying something with hot reload here #962 it somehow works with caveats but still need some work, and it changes the channel config to be per db instead of global (in my wip, you can choose between the current server-side static config that do not support hot reload or the per db config that supports hot reload). |
|
This PR has the |
Add a new "paused" option on channel configuration. A paused channel is equivalent to a channel with no capacity: it yields no job and also blocks all its subchannels.
It still needs a restart of the jobrunner, so it does not allow dynamic pause/resume, but hot reload may be added later in #765.
It still is an improvement over setting the capacity at 0, because it keeps the capacity in the configuration (removing the option in the config restores the initial capacity).