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