使用GatewayWorker,在Events類中需要實現:
4進程,在一個多用戶房間內,服務器設定一個定時器,20秒后取消。但是還剩下15秒的時候,服務器需要取消該定時器。調用Timer::del($timer_id)后仍然會執(zhí)行。
請問如何實現“定時器添加和刪除放在同一個進程”?
場景:
一個房間有6個人,6回合你畫我猜。10秒選詞,60秒畫,5秒答案展示。
10秒選詞:
選詞開始,設定10秒定時器,告知大家當前回合的題目。如果用戶1在5秒的時候選詞了,就要清除這個定時器。如果10秒后用戶未選詞,系統自動選詞(定時器內自動清除,這個沒問題)
添加定時器后得到timerid 存起來 然后當你收到用戶選詞的消息后 刪除這個timerid。這個方法嘗試過吧timerid存在數據庫,讀取出來清除,但是不成功。
可能過程中,設定定時器和5秒時消除定時器不在一個進程,所以總是清除不成功……