因為看到使用workerman自帶的定時器,如果數量多的時候會發(fā)生計時不準確的情況,如果使用GlobalTimer會出現那種情況嗎,如果會出現又應該怎么去解決呢? ? 應用場景:棋牌游戲出牌倒計時
時間不準是因為單個進程內部處理業(yè)務都是串行的,處理完一個才處理下一個,如果處理時間超過了下次運行定時器的時間,會造成不準確。GlobalTimer也無法避免業(yè)務執(zhí)行慢導致下一個定時器執(zhí)行時間不準問題。 如果進程里的業(yè)務都能在預期時間內完成,則不存在定時器不準的情況。 ? 如果擔心定時器執(zhí)行時間被業(yè)務影響,可以單獨啟動一個進程專門運行定時器,這樣這個進程里的定時器是準的,時間到后利用channel組件通知其它進程該運行業(yè)務。
感謝解答,了解了問題所在。