![]() |
VOOZH | about |
dotnet add package Quartz.Plugins --version 3.18.1
NuGet\Install-Package Quartz.Plugins -Version 3.18.1
<PackageReference Include="Quartz.Plugins" Version="3.18.1" />
<PackageVersion Include="Quartz.Plugins" Version="3.18.1" />Directory.Packages.props
<PackageReference Include="Quartz.Plugins" />Project file
paket add Quartz.Plugins --version 3.18.1
#r "nuget: Quartz.Plugins, 3.18.1"
#:package Quartz.Plugins@3.18.1
#addin nuget:?package=Quartz.Plugins&version=3.18.1Install as a Cake Addin
#tool nuget:?package=Quartz.Plugins&version=3.18.1Install as a Cake Tool
Quartz.Plugins provides some useful ready-mady plugins for your convenience.
You need to add NuGet package reference to your project which uses Quartz.
Install-Package Quartz.Plugins
Plugins are configured by using either DI configuration extensions or adding required configuration keys.
Configuration key in in format quartz.plgin.{name-to-refer-with}.{property}.
on how to configure each plugin
Logs a history of all job executions (and execution vetoes) and writes the entries to configured logging infrastructure.
Structured logging alternative to LoggingJobHistoryPlugin. Uses named message template parameters (e.g. {JobName}, {TriggerGroup}) instead of index-based placeholders, making log output compatible with structured logging sinks like Serilog and NLog. This avoids template cache memory leaks that can occur with the original plugin.
Message templates can be customized via properties. When customizing, the parameter names in templates are positionally mapped, so they must appear in the same order as the defaults.
Available template properties:
| Property | Parameters (in order) |
|---|---|
JobToBeFiredMessage |
{JobGroup}, {JobName}, {TriggerGroup}, {TriggerName}, {FireTime}, {ScheduledFireTime}, {NextFireTime}, {RefireCount} |
JobSuccessMessage |
{JobGroup}, {JobName}, {FireTime}, {TriggerGroup}, {TriggerName}, {Result} |
JobFailedMessage |
{JobGroup}, {JobName}, {FireTime}, {TriggerGroup}, {TriggerName}, {ExceptionMessage} |
JobWasVetoedMessage |
{JobGroup}, {JobName}, {TriggerGroup}, {TriggerName}, {FireTime} |
DI configuration:
services.AddQuartz(q =>
{
q.UseStructuredJobLogging();
});
::: tip
Recommended over LoggingJobHistoryPlugin when using structured logging providers (Serilog, NLog, etc.).
:::
Structured logging alternative to LoggingTriggerHistoryPlugin. Logs trigger firings, misfires, and completions using named message template parameters for structured logging compatibility.
Message templates can be customized via properties. When customizing, the parameter names in templates are positionally mapped, so they must appear in the same order as the defaults.
Available template properties:
| Property | Parameters (in order) |
|---|---|
TriggerFiredMessage |
{TriggerGroup}, {TriggerName}, {JobGroup}, {JobName}, {FireTime}, {ScheduledFireTime}, {NextFireTime}, {RefireCount} |
TriggerMisfiredMessage |
{TriggerGroup}, {TriggerName}, {JobGroup}, {JobName}, {FireTime}, {ScheduledFireTime}, {NextFireTime} |
TriggerCompleteMessage |
{TriggerGroup}, {TriggerName}, {JobGroup}, {JobName}, {CompletedTime}, {ScheduledFireTime}, {NextFireTime}, {TriggerInstructionCode} |
DI configuration:
services.AddQuartz(q =>
{
q.UseStructuredTriggerLogging();
});
::: tip
Recommended over LoggingTriggerHistoryPlugin when using structured logging providers (Serilog, NLog, etc.).
:::
This plugin catches the event of the VM terminating (such as upon a CRTL-C) and tells the scheduler to Shutdown.
This plugin loads XML file(s) to add jobs and schedule them with triggers as the scheduler is initialized, and can optionally periodically scan thefile for changes.
::: warning The periodically scanning of files for changes is not currently supported in a clustered environment. :::
This plugin loads JSON file(s) to add jobs and schedule them with triggers as the scheduler is initialized, and can optionally periodically scan the file for changes. It is the JSON analog of XMLSchedulingDataProcessorPlugin.
::: warning The periodically scanning of files for changes is not currently supported in a clustered environment. :::
DI configuration:
services.AddQuartz(q =>
{
q.UseJsonSchedulingConfiguration(x =>
{
x.Files = new[] { "quartz_jobs.json" };
x.ScanInterval = TimeSpan.FromMinutes(1);
x.FailOnFileNotFound = true;
x.FailOnSchedulingError = true;
});
});
Property configuration:
quartz.plugin.json.type = Quartz.Plugin.Json.JsonSchedulingDataProcessorPlugin, Quartz.Plugins
quartz.plugin.json.fileNames = quartz_jobs.json
quartz.plugin.json.scanInterval = 60
quartz.plugin.json.failOnFileNotFound = true
quartz.plugin.json.failOnSchedulingError = true
See for the full JSON file format and trigger type reference.
This plugin catches the event of job running for a long time (more than the configured max time) and tells the scheduler to "try" interrupting it if enabled.
::: tip Quartz 3.3 or later required. :::
Each job configuration needs to have JobInterruptMonitorPlugin.JobDataMapKeyAutoInterruptable key's value set to true in order for plugin to monitor the execution timeout.
Jobs can also define custom timeout value instead of global default by using key 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();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 netcoreapp2.0 was computed. netcoreapp2.1 netcoreapp2.1 was computed. netcoreapp2.2 netcoreapp2.2 was computed. netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 netstandard2.0 is compatible. netstandard2.1 netstandard2.1 was computed. |
| .NET Framework | net461 net461 was computed. net462 net462 is compatible. net463 net463 was computed. net47 net47 was computed. net471 net471 was computed. net472 net472 is compatible. net48 net48 was computed. net481 net481 was computed. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen40 tizen40 was computed. tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
Showing the top 5 NuGet packages that depend on Quartz.Plugins:
| Package | Downloads |
|---|---|
|
Castle.Facilities.Quartz
Castle Windsor Quartz facility lets you easily add windsor to Quartz apps. |
|
|
Quartz.HostedService
Use .Net Core Generic Service and Quartz to Implement Background Schedule Tasks. |
|
|
Grebok.AspNet
Grebok Framework |
|
|
Excalibur.Jobs
Consolidated Excalibur job scheduling and orchestration framework. Includes abstractions, core implementations, coordination, workflows, and Quartz integration. |
|
|
Excalibur.Hosting.Jobs
Job hosting infrastructure for Excalibur applications with .NET Worker Service and Web hosting support. |
Showing the top 5 popular GitHub repositories that depend on Quartz.Plugins:
| Repository | Stars |
|---|---|
|
foxminchan/BookWorm
The practical implementation of Aspire using Microservices, AI-Agents
|
|
|
withsalt/BilibiliLiveTools
Bilibili(B站)无人值守直播工具。自动登录,自动获取直播推流地址,自动推流(使用ffmpeg),可以用于电脑、树莓派等设备无人值守直播。
|
|
|
guoming/Hummingbird
分布式锁,分布式ID,分布式消息队列、配置中心、注册中心、服务注册发现、超时、重试、熔断、负载均衡
|
|
|
microsoft/Recurring-Integrations-Scheduler
Recurring Integrations Scheduler (RIS) is a solution that can be used in file-based integration scenarios for Dynamics 365 Finance and Dynamics 365 Supply Chain Management.
|
|
|
oncemi/OnceMi.Framework
基于.NET 7和Vue 2开发的企业级前后端分离权限管理开发框架(后台管理系统),具有组织管理、角色管理、用户管理、菜单管理、授权管理、计划任务、文件管理等功能。支持国内外多种流行数据库,支持IdentityServer4认证中心。
|
| Version | Downloads | Last Updated |
|---|---|---|
| 3.18.1 | 45,213 | 4/25/2026 |
| 3.18.0 | 30,373 | 4/11/2026 |
| 3.17.1 | 12,282 | 4/3/2026 |
| 3.17.0 | 6,197 | 3/29/2026 |
| 3.16.1 | 38,578 | 3/4/2026 |
| 3.16.0 | 3,545 | 3/1/2026 |
| 3.15.1 | 135,587 | 10/26/2025 |
| 3.15.0 | 89,098 | 8/3/2025 |
| 3.14.0 | 329,245 | 3/8/2025 |
| 3.13.1 | 311,638 | 11/2/2024 |
| 3.13.0 | 140,959 | 8/10/2024 |
| 3.12.0 | 24,466 | 8/3/2024 |
| 3.11.0 | 91,557 | 7/7/2024 |
| 3.10.0 | 39,621 | 6/26/2024 |
| 3.9.0 | 517,900 | 5/9/2024 |
| 3.8.1 | 711,213 | 2/17/2024 |
| 3.8.0 | 566,234 | 11/18/2023 |
| 3.7.0 | 662,186 | 8/4/2023 |
| 3.6.3 | 386,607 | 6/25/2023 |
| 3.6.2 | 1,088,895 | 2/25/2023 |