【问题标题】:How often does Quartz.net load trigger settings?Quartz.net 多久加载一次触发设置?
【发布时间】:2019-03-12 04:37:56
【问题描述】:

我已经使用 SQLite 作业存储设置 Quartz.net。

此外,还有: 1. Windows 服务保持 Quartz.net 调度程序运行 2. ASP.NET MVC Web 应用程序,其行为类似于允许设置计划的管理仪表板。

它们都与 Quartz.net 表共享同一个 SQLite 数据库。

当我使用第二个应用(Web 应用)更改计划时,Windows 服务会捕获这些更改并遵循刚刚设置的计划。

我认为我应该以某种方式通知第一个应用程序已更改计划并且应该重新加载它(通过暂停作业并重新启动它们或以其他方式)。但事实证明,Windows 服务应用程序会加载这些更改,并且不需要任何其他工作。

我的问题是:

  1. 这种结构的可靠性如何?
  2. 我应该让它像现在这样工作还是应该创建自己的计划设置重新加载机制?

【问题讨论】:

标签: c# .net scheduled-tasks quartz-scheduler quartz.net


【解决方案1】:

幸运的是 Quartz.Net 在 GitHub 上是 open source

如果我们看一下 QuartzSchedulerThread 中的 Run() 方法,我们可以看到,只要线程可用,就会要求 JobStore 访问 AcquireNextTriggers()

在这里我们可以看到驱动程序委托(在您的情况下是 StdAdoDelegate)被要求发送到 SelectTriggerToAcquire()

该方法直接访问您的 SQLLite 作业存储,因此回答您的两个问题:

  1. 这种构造非常可靠,因为它被主调度程序反复直接查询。
  2. 可以说你应该让它像现在这样工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多