因?yàn)榭吹绞褂脀orkerman自帶的定時(shí)器,如果數(shù)量多的時(shí)候會(huì)發(fā)生計(jì)時(shí)不準(zhǔn)確的情況,如果使用GlobalTimer會(huì)出現(xiàn)那種情況嗎,如果會(huì)出現(xiàn)又應(yīng)該怎么去解決呢?
?
應(yīng)用場(chǎng)景:棋牌游戲出牌倒計(jì)時(shí)
時(shí)間不準(zhǔn)是因?yàn)閱蝹€(gè)進(jìn)程內(nèi)部處理業(yè)務(wù)都是串行的,處理完一個(gè)才處理下一個(gè),如果處理時(shí)間超過了下次運(yùn)行定時(shí)器的時(shí)間,會(huì)造成不準(zhǔn)確。GlobalTimer也無法避免業(yè)務(wù)執(zhí)行慢導(dǎo)致下一個(gè)定時(shí)器執(zhí)行時(shí)間不準(zhǔn)問題。
如果進(jìn)程里的業(yè)務(wù)都能在預(yù)期時(shí)間內(nèi)完成,則不存在定時(shí)器不準(zhǔn)的情況。
?
如果擔(dān)心定時(shí)器執(zhí)行時(shí)間被業(yè)務(wù)影響,可以單獨(dú)啟動(dòng)一個(gè)進(jìn)程專門運(yùn)行定時(shí)器,這樣這個(gè)進(jìn)程里的定時(shí)器是準(zhǔn)的,時(shí)間到后利用channel組件通知其它進(jìn)程該運(yùn)行業(yè)務(wù)。