【问题标题】:chronos 3.0.3 starts jobs instantly instead of running it on their scheduled timechronos 3.0.3 立即启动作业,而不是在预定时间运行它
【发布时间】:2019-02-21 13:39:10
【问题描述】:

我正在使用 chronos 3.0.3。当我部署作业时,它会立即在 mesos slave 上运行所有作业。我希望 chronos 仅在作业的预定时间运行,而不是立即运行。

如何配置以防止立即运行作业? 如果有人可以在 chronos 代码中提供任何指针,它正在调度立即运行,那也将有很大帮助。

我已经在所有工作中定义了 30 分钟的 epsilon,但这并没有帮助;并运行所有作业。

这些都是预定的作业,而不是依赖的作业。

【问题讨论】:

  • 欢迎任何帮助。

标签: mesos mesosphere mesos-chronos


【解决方案1】:

将 json 作业定义中的 schedule 字段设置为在您想运行时运行。格式为ISO 8601。例如:

"schedule": "R/2018-09-13T02:00:00.000Z/PT24H",
  • R:意味着永远重复
  • 2018-09-13:您想开始跑步的日期
  • 02:00:00.000Z:您想要运行工作的时间
  • PT24H:每 24 小时运行一次。

更多信息here

更新计划字段以说在 2 天内运行对我有用:

希望对你有帮助。

【讨论】:

  • 谢谢,里科。但实际上,看起来 cron 在部署到 chronos 后总是立即运行,而与调度无关。此后,它将按计划进行
  • 设置未来日期/时间的计划值。会不会是你在设置当前的日期和时间?
  • 1) 我们不能将其设置为仅在计划运行时才运行。此外,在 chronos 3.0.3 的最新版本中,“epsilon”已被弃用。那么,现在 chronos 如何计算是否必须在 chronos 上部署新作业时/当 chronos 出现时立即运行给定任务?
  • 2) 当我部署作业以更新计划字段中的现有作业(意味着更新它应该运行的时间)时,chronos 不会更新它。这是因为 chronos 在上次部署时不存储作业的完整计划。 Chronos 不断更新作业的计划字段。那么,如果我只对 cron 应该运行的时间进行了更改,我如何才能让 chronos 更新作业。
  • 因此,如果我更新计划字段以在 2 天内运行。这对我来说可以。 (更新的答案)意味着它不会立即运行。 epsilon 与立即运行作业有什么关系? epsilon 是如果您错过了作业,那么作业仍然可以运行的时间窗口。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 2013-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
相关资源
最近更新 更多