使用 AdoJobStore 自动处理作业并触发 Quartz.net 中的更改

Automatically handling job and trigger changes in Quartz.net using AdoJobStore

我正在使用 AdoJobStore 编写一个 Quartz.net 应用程序以允许自动报告计划。

在我的方案中,用户将定义要在一个应用程序中安排的自定义报告,该应用程序将向数据库添加所需的作业和触发器(使用 AdoJobStore 例程)。

一个单独的 Quartz.net 应用程序然后从数据库中读取这些设置(也使用 AdoJobStore 例程)并根据需要通过电子邮件发送报告。

有没有办法让 quartz 调度器自动开始调度在调度器上次启动后添加到数据库中的新作业和触发器,或者我是否需要编写一个定期检查数据库更改的例程,如果找到重启 Quartz 调度程序实例?

您可以直接使用 Quartz.Net 处理所有这些。这是一种方法:

  1. 将 Quartz.Net 服务器设置为 windows 服务。该发行版带有一个 Windows 服务实现,或者您可以构建自己的。在石英服务器上启用远程处理。
  2. 从用户将配置其报告和日程安排的应用程序中,使用 Quartz.Net 库连接到 Quartz.Net 服务器,并根据需要直接安排作业和触发器。
  3. 您可能希望将用户的报告配置存储在别处,以备用户稍后查看或 change/copy 时使用。将此数据存储在 Quartz.Net 以外的其他地方。如果用户更改了存储的报告配置,请再次连接到 Quartz.Net 服务器并使用 Quartz.Net 库 update/reschedule 作业。或者,您可以创建一个在 Quartz.Net 服务器上运行的作业,并定期检查是否有任何报告配置更改。
  4. 您必须创建以足够通用的方式生成报告的实际作业,以便可以通过 JobDataMap 将数据传递给作业来构建任何报告,而不必为每个作业创建一个作业报告。