今天碰到个问题,客户需要在5秒内实现操作。
这个项目是yii2框架,利用其commands命令+crontab来定时操作的。
原来的命令是这样的,一分钟执行一次:
crontab -e
*/1 * * * * /opt/www/wwwroot/yii test/test
现在要求5秒内定时任务,但crontab最小就只能到1分钟。
最后在网上搜索,发现有实现秒级的定时任务。
参考后修改如下(当然,必须保证/opt/www/wwwroot/yii test/test命令在任何地方都能执行,否则得用cd…)
先在项目目录中创建名为crontab.sh的文件,别忘了给权限:chmod +x crontab.sh
crontab.sh
#!/bin/bashstep=5 #间隔的秒数,不能大于60for (( i = 0; i < 60; i=(i+{$step}) )); do/opt/www/wwwroot/yii test/testsleep $stepdoneexit 0
crontab -e
# m h dom mon dow command* * * * * /opt/www/wwwroot/crontab.sh
见效果:
【参考来源】
https://blog.csdn.net/aaroun/article/details/78892984
https://www.jianshu.com/p/2f53c3a5fb69
