宝塔linux设置秒级计划任务

常规方法,利用sh脚本

1.新建sh文件

图片[1]9哥博客-宝塔linux设置秒级计划任务9哥博客-301cool

 2.写脚本内容

#!/bin/bash
step=10#间隔的秒数,不能大于60
for ((i=0;i<60;i=(i+step)));do
cd /www/wwwroot/根目录 && php think xxx
或者
curl 'http:www.xxx.com'
sleep $step
done
exit

3.添加计划任务

图片[2]9哥博客-宝塔linux设置秒级计划任务9哥博客-301cool

 特殊说明:此程序有缺陷 – for循环里面执行命令的时候会有等待程序执行的时间,如php think xxx执行了3s,sleep 10秒,这就是13秒,1分钟不但执行不了6次,而且还会导致和下一分钟的任务重叠,有时候会出现程序异常

解决办法:使用swoole的毫秒定时器可完美解决此类问题。

swoole毫秒级定时器

1.PHP代码

// 无需任何引入,安装swoole扩展后直接写就可以用,只要不清除会永远执行下去
// 参考文档:https://wiki.swoole.com/#/timer
\Swoole\Timer::tick(10000, function(){
    echo date("H:i:s").PHP_EOL;
    shell_exec('cd /www/wwwroot/根目录 && php think xxx');
});
\Swoole\Event::wait();

2.执行效果

  1.  

649d09298e20250328233611

 

图片[4]9哥博客-宝塔linux设置秒级计划任务9哥博客-301cool

 3.使用宝塔的swoole的守护进程运行

图片[5]9哥博客-宝塔linux设置秒级计划任务9哥博客-301cool

© 版权声明
THE END
喜欢就支持一下吧
点赞9分享
评论 抢沙发

    暂无评论内容