前言
某天开发给了一个需求,需要在后台持续运行两个php文件,间隔五秒。
大家都知道crontab定时任务设置时间,只能以 分 时 日 月 星 为单位设置,如何设置按秒执行计划任务?
解决方法:
我的解决方案是这样的:执行定时任务为每分钟执行一次,每次在执行前加上sleep进行睡眠,设置方法如下:
* * * * * /usr/bin/php 开发需要执行的php脚本 * * * * * sleep 5 && usr/bin/php 开发需要执行的php脚本 * * * * * sleep 10 &&/usr/bin/php 开发需要执行的php脚本 * * * * * sleep 15 &&/usr/bin/php 开发需要执行的php脚本 * * * * * sleep 20 &&/usr/bin/php 开发需要执行的php脚本 * * * * * sleep 25 &&/usr/bin/php 开发需要执行的php脚本 * * * * * sleep 30 &&/usr/bin/php 开发需要执行的php脚本 * * * * * sleep 35 &&/usr/bin/php 开发需要执行的php脚本 * * * * * sleep 40 &&/usr/bin/php 开发需要执行的php脚本 * * * * * sleep 45 &&/usr/bin/php 开发需要执行的php脚本 * * * * * sleep 50 &&/usr/bin/php 开发需要执行的php脚本 * * * * * sleep 55 &&/usr/bin/php 开发需要执行的php脚本
还有第二种解决方法:后台持续运行一个shell脚本,shell脚本里面每隔5秒运行一次php代码,然后使用nohup在后台执行这个shell脚本。
#!/bin/bash while true; do /usr/bin/php 开发需要执行的php脚本 sleep 5 done