Linux crontab实现秒级定时任务
Linux crontab 定时任务最少到每分钟执行一次,一些需要频繁运行启动的应用场景无法满足。
Linux crontab:
* * * * * - - - - - | | | | | | | | | +----- day of week (0 - 7) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat | | | +---------- month (1 - 12) OR jan,feb,mar,apr ... | | +--------------- day of month (1 - 31) | +-------------------- hour (0 - 23) +------------------------- minute (0 - 59)
crontab能到分钟级,我们可以在sh文件里写一个循环,然后每循环一次间隔多少秒执行下次循环。
先不说了看代码
#!/bin/sh step=2 #循环间隔的秒数 #(i+step) 是每次循环i值+step 也就是每次循环+2 i到60停止循环 for (( i = 0; i我在项目里使用这种方式定时任务稳定运行了有半年了,会有一点点的时间误差 因为中间PHP脚本运行需要耗时,但是这些误差可以忽略不计。
crontab添加定时任务的时候需要根据脚本的几个数值做相应的时间调整
比如我上面的间隔时间是2秒,每次循环i都会加2,当i到60的时候就会停止,crontab定时任务如下
执行crontab -e 添加如下内容 每分钟运行一次
*/1 * * * * /data/apps/crontab/php_api_clear.sh比如你的任务需要5秒运行一次 间隔时间(step =5)循环 i 到180 停止 那么定时任务应设为每3分钟执行一次,
脚本内容如下:
#!/bin/sh step=5 #间隔的秒数 for (( i = 0; i
© 版权声明
转载请注明来自白芸资源网以及原文地址。
本站不敢保证内容的可靠性,内容仅供小范围学习与参考,禁止用于商业、盈利或其它非法用途以及大范围传播,您需在学习与参考完毕后从您的个人存储空间彻底删除,因您滥用而造成的损失本站不承担法律责任。
本站部分内容可能源于互联网,版权争议与本站无关,如有侵权可联系站长处理,敬请谅解!
请您合法使用本站资源。
THE END