删除定时器的坑
swoole,workerman 中的定时器,我们用起来很方便。
// swoole
Swoole\Timer::tick(int $msec, callable $callback_function, ...$params): int
// workerman
int \Workerman\Timer::add(float $time_interval, callable $callback [,$args = array(), bool $persistent = true])
但是我们想删除一个定时器时,就不那么容易了,文档中一般是这么删除的,添加定时器时,会返回一个 timerid,拿这个 timerid 去删除
// swoole
Swoole\Timer::clear(int $timer_id): bool
// workerman
Timer::del($_SESSION['auth_timer_id']);
但是我们很可能会忽略一点,启动定时器的是某一个 worker 进程,你删除的时候,如果不是同一个 worker 进程,则删不掉的。
本作品采用《CC 协议》,转载必须注明作者和本文链接
:+1:
timer_id
存到其他地方?