常规方法,利用sh脚本
1.新建sh文件
![图片[1]9哥博客-宝塔linux设置秒级计划任务9哥博客-9哥博客](https://blog.929999.xyz/wp-content/uploads/2025/03/2ebda46639dcc75d1f0996783e2bbecc-1-2.png)
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哥博客-9哥博客](https://blog.929999.xyz/wp-content/uploads/2025/03/d83480450db7fa195374d81543c1f483-1-2.png)
特殊说明:此程序有缺陷 – 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.执行效果

![图片[4]9哥博客-宝塔linux设置秒级计划任务9哥博客-9哥博客](https://blog.929999.xyz/wp-content/uploads/2025/03/26620f75416526565c2b6cf5da59b9d3-1-2.png)
3.使用宝塔的swoole的守护进程运行
![图片[5]9哥博客-宝塔linux设置秒级计划任务9哥博客-9哥博客](https://blog.929999.xyz/wp-content/uploads/2025/03/bc59a739eb98f0c1902b75b446920828-1024x500-1-2.png)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






暂无评论内容