簡單介紹一下,我用Workerman開了4個進程來處理不同的定時任務(wù)。在4個進程中對應(yīng)4個不同的timer_id。
我已經(jīng)知道在當前進程中可以使用Timer::del()來刪除定時器。
我的問題有兩個:
一、如果Workerman停止了運行,各個進程的定時器是不是默認就被清除了,需不需要在代碼中主動清除?比如寫一個onWorkerStop的回調(diào)清除定時器。
二、如何在其他閉包函數(shù)中,進入指定的進程操作數(shù)據(jù)?比如onWorkerStart開了4個進程,在onWorkerStop時進入1號進程操作數(shù)據(jù)。
官方文檔看的不是很懂,希望知道的朋友麻煩解答一下我的困惑。謝謝!
進程沒了這個進程里的所有東西就都沒了吧,包括定時器也肯定沒了的,所以進程停止的時候不用清理定時器。
不能跨進程直接操作數(shù)據(jù),都是進程間通訊來操作。比如A進程想操作B進程的變量,只能A進程通過某種方式通知B進程,B進程再自己去操作。 https://github.com/walkor/global-timer 你看下源碼,用的是channel來進程間通訊刪除定時器的