什么是任务调度
我們可以先思考一下業(yè)務(wù)場景的解決方案:
-
某電商系統(tǒng)需要在每天上午10點,下午3點,晚上8點發(fā)放一批優(yōu)惠券。
-
某銀行系統(tǒng)需要在信用卡到期還款日的前三天進(jìn)行短信提醒。
-
某財務(wù)系統(tǒng)需要在每天凌晨0:10結(jié)算前一天的財務(wù)數(shù)據(jù),統(tǒng)計匯總。
-
12306會根據(jù)車次的不同,設(shè)置某幾個時間點進(jìn)行分批放票。
-
某網(wǎng)站為了實現(xiàn)天氣實時展示,每隔10分鐘就去天氣服務(wù)器獲取最新的實時天氣信息。
以上業(yè)務(wù)場景的解決方案就是任務(wù)調(diào)度。
任務(wù)調(diào)度是指系統(tǒng)為了自動完成特定任務(wù),在約定的特定時刻去執(zhí)行任務(wù)的過程。有了任務(wù)調(diào)度即可解放更多的人力,而是由系統(tǒng)自動去執(zhí)行任務(wù)。
如何實現(xiàn)任務(wù)調(diào)度?
-
多線程方式,結(jié)合sleep
-
JDK提供的API,例如:Timer、ScheduledExecutor
-
框架,例如Quartz ,它是一個功能強大的任務(wù)調(diào)度框架,可以滿足更多更復(fù)雜的調(diào)度需求
但是上述這些解決方案要么實現(xiàn)起來比較繁瑣,要么不能滿足分布式架構(gòu)需求,我們需要更好的解決方案。
總結(jié)
- 上一篇: 认证拦截功能需求分析
- 下一篇: 什么是分布式任务调度