使用Swoole实现毫秒级定时任务
Posted yellowgold
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Swoole实现毫秒级定时任务相关的知识,希望对你有一定的参考价值。
指定时间后执行
$timer = SwooleTimer::after(毫秒数,function(){ 执行代码 });
清除指定定时器
SwooleTimer::clear($timer);
附上示例代码
$timer1 = SwooleTimer::tick(5000,function()use(&$timer1){ static $i = 0; if($i>100){ SwooleTimer::clear($timer1); }else{ $i++; } $log = fopen(‘test.log‘,‘a‘); fwrite($log,"现在时间是:".date(‘Y-m-d H:i:s‘,time())." "); fclose($log); });
想要在方法内清除定时任务必须用&号。
附上执行命令
nohup php /root/test.php &
这里必须加上& 表示指在后台运行
执行之后会出现一个进程号,可以用kill -9 [进程号] 结束当前进程,当然也可以用ps命令来查进程号
ps -aux| grep test.php
以上方法只能以cli模式运行
注意,必须安装了swoole拓展才能使用这个方法。此操作也只能在cli模式使用,否则会报错^^ 看报错信息也能看出来
以上是关于使用Swoole实现毫秒级定时任务的主要内容,如果未能解决你的问题,请参考以下文章
[Shell] swoole_timer_tick 与 crontab 实现定时任务和监控