我如何在100分钟的周期内放置crons?

时间:2011-09-12 20:39:25

标签: php bash cron scheduled-tasks crontab

我不得不拆分一些较大的crons,一个简单的方法就是取id的最后两位数字。因此id 10001将与1,101,201,... 1001,2001等同时运行

而不是单个cron花费数小时来运行,现在它们被拆分100次并且运行得更加一致。

但是,如何从 x 开始,每隔100分钟安排一次cron运行?

示例:

php cron.cli 00   start at 12:01am and run every 100 minutes
php cron.cli 01   start at 12:01am
php cron.cli 02   start at 12:02am
     . . .
php cron.cli 99   start at 1:39am
php cron.cli 00   start at 1:40am [looping every 100 minutes]
php cron.cli 01   start at 1:41am

我需要cron 01在凌晨12:01开始,cron 02从早上12:02开始,cron 99从凌晨1:39开始。之后每隔一百秒。

你能帮忙吗?

3 个答案:

答案 0 :(得分:5)

我只会在crontab文件中写入一个条目。 one命令将启动cron.cli脚本并将当前时间作为参数传递。

然后cron-cli脚本接受该参数并从中创建有问题的id。这样做,文件管理起来要简单得多,因为你不会把crontab文件弄得太乱了。想象你的100个步骤变成了200步甚至更多......

* * * * * php cron.cli $(date +\%R)

答案 1 :(得分:2)

假设他们不必连续运行,一个简单的解决办法就是让他们每120分钟运行一次,这样你就可以为工作00到59指定偶数小时(我猜你从00开始,因为你完成了99.)和奇数小时的工作61到99。

如果你想要更均匀的分布,你可以将它们分散一点(跳过6的倍数),这样第一个小时就可以填满作业00到49,第二个小时填满50到99。

答案 2 :(得分:2)

幸运的是,如果你明确地写出来,你只需要指定一年的cron条目,因为:

enter image description here