【问题标题】:Get next fire time only by looking at cron expression仅通过查看 cron 表达式来获取下一次触发时间
【发布时间】:2014-10-16 09:19:13
【问题描述】:

我将 Quartz.NET 作为服务运行,我直接在 quartz-jobs.xml 文件中添加我的作业。因此,为了添加和删除作业和触发器,我处理 Xml 而不是正常功能。 我想知道如何仅通过查看触发器的 cron 表达式来获取触发器的下一次触发时间?

【问题讨论】:

  • 可以使用NCrontab解析cron表达式raboof.com/projects/ncrontab
  • @BenRobinson 但它是否也适用于 Quartz.NET 样式的 cron 表达式?你知道他们有几秒钟的额外参数(顺便说一下,我没有使用它们)。
  • 不,它只支持标准的 cron 表达式。它确实有一个 GetNextOccurrence 方法,您可以在解析后的表达式上运行。
  • @BenRobinson 您也可以将其发布为答案。
  • @MarkoLahma 我正在为以下 cron 表达式测试您的解决方案:“0 26 13 17 10 ? 2015”但它返回 null 的 nextfiretime。知道这是未来的日期,您为什么认为会发生这种情况?

标签: c# cron quartz.net job-scheduling


【解决方案1】:

您可以从给定的 cron 表达式中获取下一次触发时间:

var expression = new CronExpression("0 26 13 17 10 ? 2015");
DateTimeOffset? time = expression.GetTimeAfter(DateTimeOffset.UtcNow);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-30
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多