【问题标题】:Cron expression to run job twice a day at different time?每天在不同时间运行两次作业的 Cron 表达式?
【发布时间】:2015-12-02 17:39:16
【问题描述】:

我有一项工作需要每天在不同时间执行两次。 例如10:00 和 15:30。 我怎样才能做到这一点?

我很困惑,因为两个时间的分钟都不一样。 对于 11:00 和 15:00 来说很容易,因为对于这两个时间,分钟部分是相同的,但是对于不同的分钟部分,cron 是否可行?

在此先感谢并为愚蠢的问题道歉。

【问题讨论】:

  • 只有一份工作的原因是什么?
  • 这不能用一个触发器来完成... 0 0,30 10,15 * * ?将在 1000、1030、1500 和 1530、0 0 10,15 * * 处触发?将在 1000 和 1530 以及 0 30 10,15 * * 处触发?在 1030 和 1530。如果您选择第一个选项,您可以在代码中添加一些逻辑来跳过您需要跳过的运行。

标签: cron quartz-scheduler


【解决方案1】:

我尝试过使用 0 1,6 * * ? * 表达我的要求 - 每天凌晨 1 点和 6 点安排工作。因此,对于您安排 10:00 和 15:00 时间的请求,我相信以下 cron 表达式应该有效。请试一试,让我知道 0 10,15 * * ? *

【讨论】:

  • 你好@Shammu,欢迎来到 StackOverflow。这没有回答问题。 Ravi 实际上是在尝试获取 10:00 和 15:30 的 cron。在帖子中甚至提到 11 和 15 很容易配置。
  • 知道了,我忽略了这一分钟。我相信这只能通过 lipponen 提出的两种不同的表达方式来实现。如果分钟也相同,则可以单独表达。感谢您查看它@JulianoCosta
【解决方案2】:

尝试在一个表达式中最接近您的表达式

0 0 10,15/12 * * ?

这将在 10:00 和 15:00 运行。

【讨论】:

  • 为什么是/12
  • /12 - 表示它每 12 小时运行一次,每天两次。
  • 如果您只是说 /12,但您当前的 10,15/12 会在 在 10 小时后的第 0 分钟和从 15 到 23 的每 12 小时显示一次crontab.guru/#0_10,15/12___*
  • 不 - /12 表示一天 2 次,而不是 24 小时内的 1 次,在指定的不同时间 10 和 15。您可以在 cronmaker.com 进行测试
  • 是的,我知道 /12 做了什么,我的意思是 15/12 没有任何意义。
【解决方案3】:

您可以为每个作业设置值:

0 10 * * * job

30 15 * * * job

这里有更多信息:

*    *    *    *    *  command to be executed
┬    ┬    ┬    ┬    ┬
│    │    │    │    │
│    │    │    │    │
│    │    │    │    └───── day of week (0 - 7) (0 or 7 are Sunday, or    use names)
│    │    │    └────────── month (1 - 12)
│    │    └─────────────── day of month (1 - 31)
│    └──────────────────── hour (0 - 23)
└───────────────────────── min (0 - 59)

关于 cron 的维基页面 https://en.wikipedia.org/wiki/Cron

【讨论】:

  • 感谢您的评论。我知道这一点,但我希望在 SINGLE cron 表达式中使用它而不是两个不同的表达式。
  • 在这种情况下,我真的建议使用两个单独的 cron 条目。它比一些愚蠢的 hack 更容易维护。
猜你喜欢
  • 1970-01-01
  • 2017-02-11
  • 2016-06-05
  • 2015-05-27
  • 1970-01-01
  • 2022-10-25
  • 2020-09-02
  • 2014-08-14
  • 2016-06-13
相关资源
最近更新 更多