定時(shí)器是每隔1秒運(yùn)行,為什么就入了一次隊(duì)列后就不執(zhí)行了,麻煩walkor幫忙看下新手感謝
Redis擴(kuò)展是阻塞式調(diào)用的,如果業(yè)務(wù)一直阻塞在某個(gè)redis調(diào)用并且一直不返回,或者說業(yè)務(wù)代碼一直占用進(jìn)程控制權(quán),workerman內(nèi)核就得不到進(jìn)程運(yùn)行的控制權(quán),就無法執(zhí)行定時(shí)器。
如果你需要redis隊(duì)列,可以直接用 http://www.wtbis.cn/doc/workerman/components/workerman-redis-queue.html
public static function onWorkerStart()
{
#訂閱通知
$client = new Client('redis://127.0.0.1:6379');
$client->subscribe('chat_yuyue', function($value){
if($value){
$self = new self();
$self->redis_yuyue($value);
}
});
$client->subscribe('chat', function($value){
$self = new self();
$self->redis_timeout($value);
});
}