Quartz.net多长时间加载触发器设置?

问题描述 投票:4回答:1

我有SQLite Job store的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个回答
3
投票

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

如果我们看看QuartzSchedulerThread中的Run()方法,我们可以看到,每当一个线程可用时,JobStore就会被要求使用AcquireNextTriggers()

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

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

  1. 这种结构非常可靠,因为它由主调度程序重复和直接查询。
  2. 你可以说它现在可以让它像现在一样工作。
© www.soinside.com 2019 - 2024. All rights reserved.