What happens to jobs affected by Quartz DisallowConcurrentExecution
What happens when a job does not run because of the disallow annotation.
Is it queued to run after the currently running instance dies? Is that duplicate "run" of it just thrown away, never to be heard from again?
I've tried testing in code, but my inexperience with the language and lib开发者_运维知识库rary is causing some difficulty.
The additional firings are just delayed (as if no worker thread is available to run them) until the first instance completes. If that causes the next fire time to be missed by more than the scheduler's configured misfire threshold, then the misfire instruction will be applied to the trigger that was blocked.
I'm not exactly sure -- but I think this is equivalent to setting the "synchronized" keyword, which means, the duplicate run will happen after the current running instance dies.
精彩评论