如何像工作队列一样一个接一个地运行cron作业?
我正在从事的项目有将近20个以上的cron作业,其中大多数都是每小时开始,并且非常占用数据库资源,所以我想拥有像工作队列这样的东西,它将一个接一个地开始cron作业,所以不是全部20+作业在新的时间开始时开始,使我的服务器不可用。
是否有类似这样的按构建系统?或将作业队列功能添加到linux cron的任何其他简单方法。?
编写一个bash脚本以按顺序运行命令,然后将其添加到crontab中。
例如,使用命令按顺序运行作业,创建一个名为phpjobs.sh之类的文件:
#!/bin/bash
/usr/bin/php -q <yourfile1.php>
/usr/bin/someothercommand
/usr/bin/php -q <yourfile2.php>
/usr/bin/php -q <yourfile3.php>
Run Code Online (Sandbox Code Playgroud)
然后使其可执行
chmod 755 phpjobs.sh
Run Code Online (Sandbox Code Playgroud)
然后将其添加到crontab中以每小时运行一次
0 * * * * root /path/to/phpjobs.sh
Run Code Online (Sandbox Code Playgroud)