龙空技术网

php-supervisor 实现秒级定时任务

养心健身体 152

前言:

当前大家对“php 定时执行”大约比较珍视,兄弟们都想要剖析一些“php 定时执行”的相关文章。那么小编同时在网络上收集了一些有关“php 定时执行””的相关资讯,希望同学们能喜欢,朋友们快快来了解一下吧!

定时任务要符合要求:

能够持续执行,不要中断。(可以使用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=3for (( i = 0; i < 60; i=(i+step) )); do$(php '/www/wwwroot/test2.php')sleep $stepdone

test2.php

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

标签: #php 定时执行 #php 定时执行方法 #phpforsleep