基本上,我使用Quartz Scheduler的實現,我想同時運行多個作業,但有些應該先於其他運行。爲此,我找到了觸發器的參數「優先級」。石英計劃程序觸發器不尊重優先
因此,讓我們說我有4個工作,每個工作都有自己的觸發器。我這樣設置優先級: JOB1 - 優先級5 作業2 - 優先級3 作業3 - 優先11 作業4 - 優先級8
我希望他們能在這個順序運行:作業3,作業4,工作, 1,job2
在20次運行中,只有3次左右我得到了預期的結果。對於其他人來說,要運行的第一項任務是非常隨機的,其餘的都是正確排序的。一次運行會像:JOB1,作業3,作業4,作業2 OR 作業4,作業3,JOB1,JOB2
我不能正確的理解中的優先級石英是如何工作的?我無法找到究竟發生了什麼。
你的線程池大小是多少?如果所有工作都有相同的計劃時間,並且石英沒有空閒線程來運行它們,那麼所有優先級都會啓動。 – Srinivas
線程池大小爲1.我認爲,就像這個例子http://www.quartz-scheduler.org/documentation/quartz-2.x/examples/Example14.html那樣,我應該根據優先級獲得任務運行 – Mocktheduck
我們必須看看兩件事情。 1)您的工作安排如何?你是否對所有工作都有相同的cron,並期望他們能夠同時開火,或者你是否使用類似intervalWithDelay的方法安排多次運行? 2)查看你的工作NextFireTime可能會給你更多的見解。優先事項只有在所有工作計劃同時開火的情況下才會出現。如果他們的火災時間不同,具有最早scheduledToFire時間的工作將被拿起 – Srinivas