宝塔linux设置秒级计划任务
·
出品 | 漫云科技
整理 | 赵建平
⛳️常规方法,利用sh脚本
1.新建sh文件

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.添加计划任务

特殊说明:此程序有缺陷 - 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.执行效果
![]()

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

从此程序就可以美丽的执行下去了~
参考文档:swoole官方中文文档
更多推荐



所有评论(0)