quartz任務執行完之後再執行下一輪任務

2022-07-15 10:09:13 字數 445 閱讀 1089

預設情況下,當job執行時間超過間隔時間時,排程框架為了能讓任務按照我們預定的時間間隔執行,會馬上啟用新的執行緒執行任務。

若我們希望當前任務執行完之後再執行下一輪任務,也就是不要併發執行任務,該如何解決呢?

第一種方法:設定 quartz.threadpool.threadcount 最大執行緒數為 1。這樣到了第二次執行任務時,若當前還沒執行完,排程器想新開乙個執行緒執行任務,但我們卻設定了最大執行緒數為 1 個(即:沒有足夠的執行緒提供給排程器),則排程器會等待當前任務執行完之後,再立即排程執行下一次任務。(注意:此方法僅適用於quartz中僅有乙個job,如果有多個job,會影響其他job的執行)

//不允許此 job 併發執行任務(禁止新開執行緒執行)

[disallowconcurrentexecution]

public class job1 : ijob

Quartz任務執行

quartz任務排程器,有個很憂傷的限制,就是提交的任務只能指定job class型別,具體job的例項例項化有quartz來建立,且任務每次執行都會建立乙個job例項,在某些場景下,我們可能需要傳遞乙個job例項 比如job的屬性有其他方式注入 那麼直接使用quartz則不太能滿足,我們需要借助d...

C MVC4 執行特性之後不再執行Action

關鍵地方,在onactionexecuting函式中,不能使用filtercontext.httpcontext.response.redirect url 來定向,打斷點可以發現一樣會執行action裡面 應該設定filtercontext.result來控制轉向。進入action4 進入acti...

spring載入完bean之後執行相關初始化

spring是j2ee比較常用的開源技術,整合spring只需在應用的web.xml檔案中進行如下配置 contextconfiglocation classpath spring spring.xml org.springframework.web.context.contextloaderlis...