swoole_server->tick
tick定时器,可以自定义回调函数。此函数是swoole_timer_tick的别名。
worker进程结束运行后,所有定时器都会自动销毁
tick/after定时器不能在swoole_server->start之前使用
在onReceive使用tick示例:
function onReceive($server, $fd, $from_id, $data) { $server->tick(1000, function() use ($server, $fd) { $server->send($fd, "hello world"); }); }
在onWorkerStart中使用
- 低于
1.8.0
版本task进程不能使用tick/after
定时器,所以需要使用$serv->taskworker进行判断 - task进程可以使用
addtimer
间隔定时器
function onWorkerStart(swoole_server $serv, $worker_id) { if (!$serv->taskworker) { $serv->tick(1000, function ($id) { var_dump($id); }); } else { $serv->addtimer(1000); } }
tick示例:
swoole_timer_tick(2000, function($id) { echo "tick-1 2000ms\n"; var_dump($id); });
swoole_timer_tick(2000, function($id, $params) { echo "tick-2 2000ms\n"; var_dump($id, $params); swoole_timer_clear($id); }, "i am params");
- 展示通过参数传值