-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Quartz scheduler does not support ConcurrentExecution.SKIP correctly #15800
Comments
/cc @machi1990, @mkouba |
@machi1990 Do you happen to know if it would be possible to map the |
@mkouba - it seems odd to me that, by switching from the simple scheduler to Quartz, I go from running a job in every node to running that job in only one node, yet the semantics of the concurrent execution option don't mirror that. I'm not sure what the usage pattern is that would mean that you wouldn't want it to run concurrently in the same node but it would be fine to run it concurrently in a different one. (It certainly caught us by surprise.) I'm no Quartz expert but I don't think there is a direct equivalent ( |
I'm not a Quartz expert either but AFAIK the |
Apologies for the bum steer. The information is patently in the Quartz DB but it is not obviously exposed in any API. Seems I will have to look elsewhere for what seems like such an obvious capability. |
@mkouba I do not think / know if there is an equivalent. |
- make it clear that it's not designed to work across the cluster - resolves quarkusio#15800
Describe the bug
When using the Quartz scheduler with multiple nodes,
ConcurrentExecution.SKIP
as implemented under #10203 only skips executions that happen to be scheduled to a node that is still running a previous execution. Given that driver to switch from the simple scheduler to Quartz is often to get scheduling across multiple nodes, this behavior is not as expected. This problem is discussed in #13048 although that issue is looking for something different.Expected behavior
Concurrent execution should be skipped if a job is still executing anywhere in the cluster. See https://stackoverflow.com/a/5801514 for an example of how to implement this with Quartz.
Actual behavior
Concurrent execution is only skipped if a job is still executing in the same process that a subsequent execution is scheduled to.
The text was updated successfully, but these errors were encountered: