美文网首页
php-supervisor 实现秒级定时任务

php-supervisor 实现秒级定时任务

作者: 云龙789 | 来源:发表于2021-08-22 19:19 被阅读0次

定时任务要符合要求:

能够持续执行,不要中断。(可以使用supervisor 实现)

代码

test.php  文件

<?php
   function test()
    {
        $start = time() + 15;
        echo time(); // 这个值  supervisor  每次重启,都会打印一次。
      //supervisor 其实不是重启,重启会换 pid,他是维护了这个进程。每次间隔15S 会打印一次这个值

        while (true) {
 //while里面写 sleep 时间加自己的业务实现,也可以不使用 sleep,直接获取SQL是否为真.但最好还是使用 sleep 比较稳妥
            sleep(3);
            if (time() > $start) {
                echo('stop');
                break;
            }
            echo(date('H:i:s'));
        }
    }
    
    test();

然后使用 supervisor 添加这个进程即可。 php test.php
如果不使用supervisor,直接在终端执行 php test.php -d,应该也可以,但是这种方案,如果程序断掉了,不会重启

使用宝塔执行定时任务

每分钟执行以下代码(实现了3S执行一次)

step=3
for (( i = 0; i < 60; i=(i+step) )); do
$(php '/www/wwwroot/test2.php')
sleep $step
done

test2.php

    function test()
    {
        echo (date('H:i:s'));
    }

    test();

相关文章

网友评论

      本文标题:php-supervisor 实现秒级定时任务

      本文链接:https://www.haomeiwen.com/subject/ezrhiltx.html