Quartz.Plugins 提供了一些有用的现成插件为您提供方便。

安装

您需要将 NuGet 包引用添加到使用 Quartz 的项目中。

  1. Install-Package Quartz.Plugins

配置

通过使用 DI 配置扩展或添加所需的配置键来配置插件。

格式为 quartz.plgin.{name-to-refer-with}.{property} 的配置键。

有关如何配置每个插件,请参阅配置参考

特性

LoggingJobHistoryPlugin

记录所有作业执行(和执行否决)的历史记录,并将条目写入配置的日志记录基础设施。

ShutdownHookPlugin

该插件捕获 VM 终止的事件(例如在 CRTL-C 上)并告诉调度程序关闭。

XMLSchedulingDataProcessorPlugin

此插件加载 XML 文件以添加作业并在调度程序初始化时使用触发器调度它们,并且可以选择定期扫描文件以查找更改。

警告

集群环境当前不支持定期扫描文件以查找更改。

JobInterruptMonitorPlugin

该插件捕获作业长时间运行(超过配置的最大时间)的事件,并告诉调度程序“尝试”在启用时中断它。

提示

需要 Quartz 3.3 或更高版本。

每个作业配置都需要将 JobInterruptMonitorPlugin.JobDataMapKeyAutoInterruptable 键的值设置为 true,以便插件监控执行超时。作业还可以使用键 JobInterruptMonitorPlugin.JobDataMapKeyMaxRunTime 定义自定义超时值而不是全局默认值。

  1. var job = JobBuilder.Create<SlowJob>()
  2. .WithIdentity("slowJob")
  3. .UsingJobData(JobInterruptMonitorPlugin.JobDataMapKeyAutoInterruptable, true)
  4. // allow only five seconds for this job, overriding default configuration
  5. .UsingJobData(JobInterruptMonitorPlugin.JobDataMapKeyMaxRunTime, TimeSpan.FromSeconds(5).TotalMilliseconds.ToString(CultureInfo.InvariantCulture))
  6. .Build();