當前位置:編程學習大全網 - 源碼下載 - ThreadPoolTaskScheduler動態添加、移除定時任務

ThreadPoolTaskScheduler動態添加、移除定時任務

最近遇到壹個需求,定時任務的業務邏輯不會改變,但需要動態添加、移除定時任務,而且定時執行時間有可能隨時改變,這可怎麽實現呢?

首先,配置定時任務線程池;

第二步,建立任務,裏面包含了定時任務需要實現的業務邏輯;

第三步,應用定時任務,包括添加、移除;

最後,運行入口程序,打開瀏覽器進行測試; 通過瀏覽器分別執行了localhost:8080/index/insert/1000/10、localhost:8080/index/insert/2000/20,也就是添加了兩個任務,任務1000每10s執行壹次,任務2000每20s執行壹次;

執行 http://localhost:8080/index/remove/1000 ,把1000的任務移除掉,再看執行結果,只剩下任務2000,ok,動態添加、移除定時任務編碼完成。

當然,這裏為了測試,把管理任務的隊列直接放到了Controller裏,實際應用時應保持全局唯壹。

最後總結

通過這個需求,我們又用到了壹個類ThreadPoolTaskScheduler,它有別於ThreadPoolTaskExecutor類,有興趣有時間的可以查看源碼。

動態添加、移除定時任務的操作流程,大致可以分為以下四個步驟:

1.建立壹個定時任務線程池;

2.為定時任務線程池建立壹個隊列,來管理這些任務;

3.根據唯壹標識,往定時任務線程池和隊列裏分別添加這個任務;

4.根據唯壹標識,從定時任務線程池裏取消壹個任務,並從隊列裏移除這個任務。

  • 上一篇:.NET三層架構解析壹:什麽是三層架構
  • 下一篇:微信裂變三級分銷微商城是什麽靠譜嗎它的運營模式是什麽...
  • copyright 2024編程學習大全網