常规方法,利用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的守护进程运行
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容