使用Swoole实现毫秒级定时任务

指定时间后执行

 $timer = \Swoole\Timer::after(毫秒数,function(){ 执行代码 });

清除指定定时器 

\Swoole\Timer::clear($timer);

附上示例代码

$timer1 = \Swoole\Timer::tick(5000,function()use(&$timer1){
        static $i = 0;
        if($i>100){
                \Swoole\Timer::clear($timer1);
        }else{
                $i++;
        }
        $log = fopen('test.log','a');
        fwrite($log,"现在时间是:".date('Y-m-d H:i:s',time())."\n");
        fclose($log);
 });

想要在方法内清除定时任务必须用&号。

附上执行命令

 nohup php /root/test.php &

这里必须加上& 表示指在后台运行

执行之后会出现一个进程号,可以用kill -9 [进程号] 结束当前进程,当然也可以用ps命令来查进程号

ps -aux| grep test.php 

  

以上方法只能以cli模式运行

注意,必须安装了swoole拓展才能使用这个方法。此操作也只能在cli模式使用,否则会报错^^  看报错信息也能看出来

 

posted @ 2020-07-21 18:46  我就是要出狂战斧  阅读(364)  评论(0编辑  收藏  举报