crontab 定时任务 65 分钟执行一次,怎么写?

2019-12-24 16:40:26 +08:00
 shengchao
32606 次点击
所在节点    Linux
88 条回复
MrUser
2019-12-24 16:42:17 +08:00
每 5 分种执行一次 A 脚本,在 A 脚本里判断是不是第 65N 次。
lihongjie0209
2019-12-24 16:43:05 +08:00
每分钟执行一次, 判断和上次执行时间是否超过 65min(每次执行需要写入执行时间)
victor
2019-12-24 16:44:34 +08:00
*/5 */1 * * *
geekvcn
2019-12-24 16:45:35 +08:00
用 shell 比较方便,crontab 每小时会重置计时
shengchao
2019-12-24 16:45:47 +08:00
@victor 你这个是 5 分钟的
yoshiyuki
2019-12-24 16:47:05 +08:00
没有特别好的写法,cron 本身不支持每 65 分钟这种语法
真要特别精准的话,需要一个个时间点写下来,00:00、01:05、etc 这样
feigle
2019-12-24 16:54:00 +08:00
还有个笨办法,把脚本复制 12 份,每一份每天执行两次,每份之间间隔 65 分钟
shengchao
2019-12-24 16:55:54 +08:00
好吧 得到结论,crontab 真的挫
FS1P7dJz
2019-12-24 16:56:09 +08:00
技术上的实现如果扭曲
最好先反思一下业务上逻辑是不是存在问题...

65 分钟这种奇怪的要求,往往不应该让系统去做,应该是开发那边做
sqdxxx
2019-12-24 17:00:10 +08:00
sleep(65*60)
shengchao
2019-12-24 17:00:16 +08:00
@FS1P7dJz 非工作业务使用
zbl430
2019-12-24 17:20:14 +08:00
http://qqe2.com/cron 这个可以测试,但是无法应该实现
shengchao
2019-12-24 17:23:59 +08:00
@zbl430 https://crontab.guru/ 这个测试也不错
maichael
2019-12-24 17:31:41 +08:00
弄个每小时执行一次的,然后脚本里面先睡 5 分钟。
b821025551b
2019-12-24 17:35:45 +08:00
@zbl430 #12
@shengchao #13
这个是 Quartz 之类的 crontab,非 linux 的 crontab。
b821025551b
2019-12-24 17:36:32 +08:00
@maichael #14
那也还是每 60 分钟一次,而不是 65
Lax
2019-12-24 17:37:23 +08:00
@shengchao “crontab 真的挫” 得出这个结论是什么逻辑?
@maichael 这个仍然是每 60 分钟。。。
est
2019-12-24 17:40:14 +08:00
@MrUser 如果是一个很大的质数怎么办。23333。
比如 97 分钟执行一次。。。
caryqy
2019-12-24 17:41:02 +08:00
5 */1 * * *

a++
if a%2 == 1 then
run ...
fi
caryqy
2019-12-24 17:43:50 +08:00
缺点 需要额外的一个文件保存计数值

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/631917

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX