請問各路大神,使用gatewayworker,在events的onmessage回調(diào)中如何獲取到worker進(jìn)程呢?
我想把業(yè)務(wù)處理中的定時器放在某個單獨(dú)的進(jìn)程上執(zhí)行,該怎么處理呢
1、Events的每一個 onXXX 回調(diào)代表每一個獨(dú)立的業(yè)務(wù)進(jìn)程;
2、如果只想在某個單獨(dú)的進(jìn)程上運(yùn)行,樣板代碼為:
class Events
{
public static function onWorkerStart($worker)
{
//比如只給0號進(jìn)程設(shè)置定時器
if($worker->id === 0)
{
Timer::add(1, function(){
//業(yè)務(wù)邏輯
});
}
}
}
我想在onMessage中使用
if($worker->id === 0)
{
Timer::add(1, function(){
//業(yè)務(wù)邏輯
});
}
但是這個worker 怎么來的呢
[attach]2465[/attach]
這個$worker 怎么傳進(jìn)來呢 在onworkerstart中你那樣寫沒問題啊 但在onmessage中就不行了
onMessage 中需要間接來玩:
1、先給Events引入一個屬性如:? static public $worker = null ;
2、在onWorkerStart 中:?
public static function onWorkerStart($worker)
{
empty(self::$worker) && self::$worker = $worker;
}
3、然后 onMessage 中就可以通過? self::$worker->id? 拿到? 進(jìn)程編號;