目前的實(shí)現(xiàn)思路是 客戶端用戶 創(chuàng)建一個 計劃任務(wù)后,webserver會異步請求 一個task服務(wù),task服務(wù)器會直接
進(jìn)行Timer::add操作,想問下這種實(shí)現(xiàn)方式可以嗎?然后 task服務(wù)器如果設(shè)置1個進(jìn)程數(shù)量 當(dāng) timer很多的時候會有問題嗎?
你就不用考慮代碼異常或其它問題導(dǎo)致的退出問題嗎?到時數(shù)據(jù)你都不知道去哪找回.如果你需要自己實(shí)現(xiàn)的話,下面是我給你建議.
第一,task服務(wù)定義一個容器,里面存儲沒執(zhí)行的任務(wù).
第二,webserver會異步請求一個task服務(wù),這個時候task服務(wù)應(yīng)該先存數(shù)據(jù)庫,然后再添加到容器去.
第三,進(jìn)程啟動的時候,掃描數(shù)據(jù)庫,獲取未執(zhí)行的任務(wù),添加到容器里面去.
第四,進(jìn)程啟動的時候,添加一個一秒執(zhí)行一次的定時器,里面代碼循環(huán)定時器的任務(wù),查找有沒有到點(diǎn)或者過期還未執(zhí)行的任務(wù),有的話,調(diào)用相應(yīng)邏輯,并更新數(shù)據(jù)庫跟容器該任務(wù)執(zhí)行狀態(tài).