Quartz.Plugins 提供了一些有用的现成插件为您提供方便。
安装
您需要将 NuGet 包引用添加到使用 Quartz 的项目中。
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
定义自定义超时值而不是全局默认值。
var job = JobBuilder.Create<SlowJob>()
.WithIdentity("slowJob")
.UsingJobData(JobInterruptMonitorPlugin.JobDataMapKeyAutoInterruptable, true)
// allow only five seconds for this job, overriding default configuration
.UsingJobData(JobInterruptMonitorPlugin.JobDataMapKeyMaxRunTime, TimeSpan.FromSeconds(5).TotalMilliseconds.ToString(CultureInfo.InvariantCulture))
.Build();