我有SQLite Job store的Quartz.net设置。
此外,还有:1。Windows服务保持Quartz.net调度程序运行2. ASP.NET MVC Web应用程序,其行为类似于管理仪表板,允许设置计划。
它们都与Quartz.net表共享相同的SQLite数据库。
当我使用第二个应用程序(Web应用程序)更改计划时,Windows服务会捕获这些更改并遵循刚刚设置的计划。
我以为我应该以某种方式通知第一个应用程序已经进行了计划更改并且应该重新加载(通过暂停作业并再次启动它们或以其他方式启动它们)。但事实证明,Windows服务应用程序加载了这些更改,并且不需要任何其他工作。
我的问题是:
幸运的是,Quartz.Net是GitHub上的open source。
如果我们看看QuartzSchedulerThread中的Run()方法,我们可以看到,每当一个线程可用时,JobStore就会被要求使用AcquireNextTriggers()。
在这里,我们可以看到驱动程序委托(在您的情况下是StdAdoDelegate)被要求SelectTriggerToAcquire()。
该方法直接访问您的SQLite作业存储,以回答您的两个问题: