如何一个接一个地运行cron作业,比如作业队列?
我正在开发的项目有大约20多个cron作业,其中大部分都是每小时开始一次并且是非常数据库密集型的,所以我希望有一些类似于作业队列的东西,这将启动一个接一个的cron作业,所以不是所有20多个工作都在新工作时间开始时启动并使我的服务器不可用。
是否有针对此类内容的构建系统? 或者任何其他简单的方法来向linux cron添加作业队列功能。 ?
答案 0 :(得分:5)
编写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>
然后使其可执行
chmod 755 phpjobs.sh
然后将其添加到crontab以每小时运行
0 * * * * root /path/to/phpjobs.sh