Perl Cron Scheduler:在 x 时间启动,每 y 分钟执行一次
我正在使用 perl cron,我想制定一个这样的规则,
从 yy:yy 时间开始每 xx 分钟/小时运行一次(直到时间结束)
我如何将其放入 cron 字符串中? perl:cron 似乎使用与常规 cron 相同的语法,因此常规 cron 字符串应该可以工作
TIA!
I'm using perl cron, and I want to make a rule like this
run every xx min/hours starting at yy:yy time (until the end of time)
How would I put this into a cron string? perl:cron seems to use the same syntax as regular cron so a regular cron string should work
TIA!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用斜杠指定间隔。这是每 5 分钟一次:
这是每 2 小时一次:
您不能在 cron 中给出开始/结束时间。
You can specify intervals with a slash. Here's every 5 minutes:
This is every 2 hours:
You cannot give a start/ end time in cron.
简而言之,您要么需要自己编写这个包,要么根据您的要求找到不同的第三方包。有两件事你要求 cron 不会做:
每 X 分钟运行一次。
假设您想每 40 分钟运行一次,您可以编写此
*/40 * * * *
。实际上,它每 60 分钟运行一次,时间为 1:40、2:40 等。在时间 Y/Z 开始/停止。
根本没有 cron 语法来实现这一点。您可以使用更多的 cronjobs 在指定时间添加/删除主 cronjobs,但这闻起来很像自我修改代码。考虑到复杂性(即:不可靠性),最好找到一个不同的系统。
The short answer is that you will either need to write this yourself or find a different third-party package, due to your requirements. There's two things you're asking for that cron doesn't do:
Run every X minutes.
Say you want to run every 40 minutes, and you write this
*/40 * * * *
. This actually runs every 60 minutes at 1:40, 2:40, etc.Start/Stop at time Y/Z.
There's simply no cron syntax for this. You could use a couple more cronjobs to add/remove the main cronjob at the specified times, but this smells a lot like self-modifying code. Given the complexity (read: unreliability), it's probably better to find a different system.