目前定時任務調度系統quartz比較出名,quartz也有集群方案,但把所有任務集中一起就構成了分布式任務系統,耦合性比較高,而且比較重。
我利用zookeeper的特性,設計了一個輕量級的定時任務調度系統。
總體的架構:
總體思路:
1.前端admin負責任務的管理,包含添加任務,刪除任務,修改任務到zookeeper(類似數據庫)。
2. 后台服務器從zookeeper中獲取各自的任務列表。
3. 定時掃描各自的任務列表,任務執行時發送http請求給業務方。
4. 業務方接受到http請求進行業務處理。
具體實現代碼參加github(只有雛形,正在完善當中):
https://github.com/nonobank-architect/nono-task-dispatcher
用到的組件:
cron-parser:https://github.com/RedHogs/cron-parser/
curator:https://github.com/apache/curator
