【问题标题】:Quartz.net - How can I run a job every year with a reminder 30 days before?Quartz.net - 我如何每年运行一项工作并在 30 天前提醒?
【发布时间】:2011-02-24 13:04:09
【问题描述】:

我决定试一试 Quartz.net。 现在我正在尝试找出实现其触发器的最佳方法。 如果我想以一定的时间间隔安排工作,比如说每 X 周、几个月或几年,并且我想设置一个触发器,该触发器在......之前执行一定的时间,我应该怎么做?比如提醒?

更新:

我已更改标题并尝试更新我的问题。我认为这很容易,但显然不是。
我已经组合了一个能够组合工作和时间表(触发器)的应用程序。我希望有人可以帮助我了解它是更好的 cron 触发器还是有其他选择......

【问题讨论】:

    标签: c# quartz-scheduler quartz.net


    【解决方案1】:

    您还必须安排提醒时间。换句话说,创建你真正的工作并实时安排它。还可以创建一个提醒作业,并根据需要提前安排它。

    【讨论】:

    • 如果您希望每 X 周、月或年执行一次,那么 DateIntervalTrigger(在 Quartz 1.x 中)或 CalendarIntervalTrigger(在 Quartz 2.x 中)是最佳匹配。跨度>
    • DateIntervalTrigger 似乎不是 Quartz.net 1.0.3 的一部分,我已经尝试过 Quartz.net 2.x 但它确实有问题,特别是对于我正在尝试的 AdoJobStore 位使用。
    【解决方案2】:

    我会在花几周时间(随机)做一些实验后尝试回答我自己的问题。
    我尝试了 Quartz.net 2.0,因为 API 看起来更简单,而且我可以利用一些新功能,例如 ICalendarIntervalTrigger。 不幸的是,这个版本在 AdoJobStore 模块中有很多错误,我的触发器根本不会触发(使用 RAMJobStore 没问题,但我需要在数据库)。
    我最终使用了 CronTriggers,它们显然是唯一适合我每 x 周、几个月或几年的重复事件的。 我找到了这个site,它将帮助我构建我的 cron 表达式。

    【讨论】:

      【解决方案3】:

      如果您的工作/任务可以公开访问,我会先尝试 scheduler.codeeffects.com、wsscheduler.com 或 setcronjob.com 之类的东西,而不是自己编写和维护复杂的逻辑。

      【讨论】:

        猜你喜欢
        • 2012-05-09
        • 2023-03-04
        • 2014-08-14
        • 1970-01-01
        • 2016-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-04
        相关资源
        最近更新 更多