同一個worker啟動多個timer,前面的timer異常退出,后面的也不執(zhí)行了。不知道哪位有更好的解決方案。
對報告異常的代碼不能充分確定其按預(yù)期運行的話,把相應(yīng)的代碼try....catch...起來。
1、捕獲異常只是輔助代碼優(yōu)雅運行的手段,而解決異常本身才是根本;
2、每個進程內(nèi)都可以獨立運作一個或多個定時器,并且進程之間都是彼此隔離互不影響。
感謝解答!比方:我們整理了一個公用的定時任務(wù)系統(tǒng),負責(zé)整系統(tǒng)的定時處理,該系統(tǒng)會動態(tài)調(diào)用相應(yīng)某塊的類和方法完成他們的任務(wù),具體有多少個任務(wù)也是不定的,可以用配置往里加。某天子模塊的開發(fā)人員在他的代碼里加了一個exit,所有其他子模塊執(zhí)行的timer就歇了。當(dāng)然還有很多辦法,比方定個制度,必須try catch,必須不能用exit等等,但這樣不是很合理。
提前采取必要的各種安全措施是非常有必要的,不過我覺得你想的太復(fù)雜了,按照你這個邏輯說的話,那永遠都是“死循環(huán)”套進去出不來了,更解決不了問題;一切都是和現(xiàn)實生活中模型相匹配的,拋開程序來說吧,不論是什么玩家玩什么,任何玩家都得遵守相應(yīng)的游戲規(guī)則不是? 但是總有玩家不按套路出牌的,那怎么辦?按規(guī)則辦事,若再犯,只好觸發(fā)規(guī)則外的更嚴厲的懲罰規(guī)則,以此迭代。【所以比如基于workerman開發(fā)應(yīng)用前,有關(guān)技術(shù)主管有責(zé)任并要明確告知開發(fā)者各種注意事項比如堅決禁止使用exit,否則就等著被KO吧,就這么簡單】