使用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 实现定时任务和监控

[Shell] swoole_timer_tick 与 crontab 组合实现定时任务和监控

Swoole系列5.1毫秒定时器

Swoole系列5.1毫秒定时器

毫秒级定时任务定时执行定时任务执行软件 —— 定时执行专家

Swoole-WebSocket毫秒定时器