Quartz 插件包
Quartz.Plugins 为您提供了一些实用的即插即用插件,以便于提高您的使用体验。
安装
您需要为使用 Quartz 的项目添加 NuGet 包引用。
Install-Package Quartz.Plugins
配置
插件可以通过依赖注入(DI)配置扩展或添加所需的配置键来配置。
配置键的格式为 quartz.plugin.{引用名称}.{属性}
。
查阅配置参考 了解如何为每个插件配置。
功能
LoggingJobHistoryPlugin
记录所有作业执行(及执行否决)的历史,并将条目写入配置的日志基础设施。
ShutdownHookPlugin
此插件捕获虚拟机终止事件(如按下 CTRL-C)并告知调度器关闭。
XMLSchedulingDataProcessorPlugin
该插件在调度器初始化时加载 XML 文件(s)以添加作业并用触发器安排它们,并且可以选择性地定期扫描文件是否有更改。
警告
目前在集群环境中不支持定期扫描文件的更改。
目前在集群环境中不支持定期扫描文件的更改。
JobInterruptMonitorPlugin
此插件捕获作业长时间运行(超过配置的最大时间)的事件,并在启用时告诉调度器尝试中断它。
提示 需要 Quartz 3.3 或更高版本。
为了使插件监控执行超时,每个作业配置必须设置 JobInterruptMonitorPlugin.JobDataMapKeyAutoInterruptable
键的值为 true。作业还可以通过使用键 JobInterruptMonitorPlugin.JobDataMapKeyMaxRunTime
来定义自定义超时值,而非使用全局默认值。
var job = JobBuilder.Create<SlowJob>()
.WithIdentity("slowJob")
.UsingJobData(JobInterruptMonitorPlugin.JobDataMapKeyAutoInterruptable, true)
// 允许此作业仅运行五秒,覆盖默认配置
.UsingJobData(JobInterruptMonitorPlugin.JobDataMapKeyMaxRunTime, TimeSpan.FromSeconds(5).TotalMilliseconds.ToString(CultureInfo.InvariantCulture))
.Build();