【问题标题】:how to write a complex quartz cron expression如何编写复杂的石英 cron 表达式
【发布时间】:2015-08-29 08:11:01
【问题描述】:

我需要开发一个 web 服务,这将帮助客户端做一些周期性的工作,api 会喜欢这样 void Dojob(int jobType, string cronExpression);

因为客户/用户会做任何想做的事,我只想知道 cron 表达式是否支持以下情况:

作业将在以下时间触发: 每天上午 9:10 到 10:50 每 8 分钟触发一次。

从 9:00 到 10:00 可能更容易,但我仍然找不到上午 9:10 到 10:50 的正确 cron 表达式。

【问题讨论】:

  • 你尝试了什么?是什么阻碍了您实现这一目标?
  • 这是一个例子。任务的持续时间、频率和时间取决于用户。用户可以设置自己的触发器。我不确定 cron 能否支持这一点。
  • 完全可以支持这个。
  • 我需要开发一个 web 服务,这将帮助客户端做一些周期性的工作,api 会喜欢这个 Dojob(int jobType, string cronExpression)。我只想知道cron表达式是否支持上述情况。
  • 阅读本教程以了解石英支持的内容:quartz-scheduler.org/documentation/quartz-1.x/tutorials/…。是的,它确实支持您所要求的调度,该教程中甚至还有非常接近的示例。

标签: cron quartz-scheduler quartz.net


【解决方案1】:

不确定你是否可以使用一个 cron 表达式来做到这一点,但你可以使用两个。

例如

0 10,18,26,34,42,50,58 9 1/1 * ? *

0 6,14,22,30,38,46 10 1/1 * ? *

【讨论】:

    【解决方案2】:

    正如 sgmoore 所说,你不能使用 1 cron 表达式来做到这一点。您必须创建 2 个触发器,每个触发器具有不同的 cron 表达式才能使其正常工作。

    第一次是从 9:10 到 9:59,每 8 分钟一次,如下所示:

    0 10-59/8 9 1/1 * ? *
    

    第二个是从 10:00 到 10:50,每 8 分钟一次,如下所示:

    0 0-50/8 10 1/1 * ? *
    

    请注意,由于 cron 表达式的工作方式,这将每 8 分钟触发一次,并在每小时开始时重新启动,因此在这种情况下会在 9:58 和 10:00 触发

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-17
      • 2012-10-10
      • 2014-09-09
      • 1970-01-01
      • 2011-03-02
      • 2015-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多