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

时间:2015-03-30 10:13:35

标签: quartz-scheduler quartz.net

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

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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