Quartz.Plugins 3.20.0

Quartz.Plugins

Quartz.Plugins provides a set of ready-made plugins for common scheduling needs.

Installation

dotnet add package Quartz.Plugins

Included plugins

  • LoggingJobHistoryPlugin / LoggingTriggerHistoryPlugin — log a history of job executions and trigger firings.
  • StructuredLoggingJobHistoryPlugin / StructuredLoggingTriggerHistoryPlugin — structured-logging equivalents using named message-template parameters (Serilog, NLog, …); recommended when using structured logging sinks.
  • XMLSchedulingDataProcessorPlugin / JsonSchedulingDataProcessorPlugin — load jobs and triggers from XML or JSON files, optionally re-scanning for changes.
  • ShutdownHookPlugin — shuts the scheduler down when the process terminates.
  • JobInterruptMonitorPlugin — interrupts jobs that run longer than a configured maximum (Quartz 3.3+).

Usage

Plugins are enabled via DI extensions or configuration keys (quartz.plugin.{name}.{property}):

services.AddQuartz(q =>
{
    q.UseStructuredJobLogging();
    q.UseStructuredTriggerLogging();
});

Authoring configuration extensions

When you write your own ISchedulerPlugin, you can offer the same strongly typed q.UseMyPlugin() experience as the built-in plugins. Write an extension method on IPropertyConfigurationRoot and call the UsePlugin<TPlugin>(name) helper (shipped in the core Quartz package): it sets the quartz.plugin.{name}.type property and, when configuration is backed by Microsoft DI (AddQuartz), registers the plugin into the container so it is constructed with constructor injection. Use TryRegisterSingleton<TService, TImplementation>() to register any companion services the plugin needs injected (it returns false when there is no container, e.g. plain SchedulerBuilder usage).

public static T UseMyPlugin<T>(this T configurer, Action<MyPluginOptions>? configure = null)
    where T : IPropertyConfigurationRoot
{
    configurer.UsePlugin<MyPlugin>("myPlugin");
    configurer.TryRegisterSingleton<IMyPluginDependency, MyPluginDependency>();
    configure?.Invoke(new MyPluginOptions(configurer));
    return configurer;
}

Derive strongly typed options from PropertiesSetter with the plugin's property prefix; each setter maps to a quartz.plugin.{name}.{property} key applied to the plugin's public setters. The same extension method then works with both AddQuartz (constructor injection) and plain SchedulerBuilder (reflection, requires a public parameterless constructor).

Documentation

📖 Full documentation and per-plugin configuration: https://www.quartz-scheduler.net/documentation/quartz-3.x/packages/quartz-plugins.html

Showing the top 20 packages that depend on Quartz.Plugins.

Packages Downloads
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
44
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
43
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
40
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
39
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
38
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter
38
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
37
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
36
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
35
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
34
Quartz.Plugins.TimeZoneConverter
Quartz.NET TimeZoneConverter integration https://github.com/mj1856/TimeZoneConverter; Quartz Scheduling Framework for .NET
33

.NET Framework 4.6.2

.NET Framework 4.7.2

.NET Standard 2.0

Version Downloads Last updated
4.1.1 3 09/19/2026
4.1.0 8 09/15/2026
4.0.1 9 09/09/2026
4.0.0 10 09/05/2026
4.0.0-rc.2 8 09/07/2026
4.0.0-rc.1 9 09/05/2026
4.0.0-beta.1 8 09/04/2026
4.0.0-alpha.5 10 09/01/2026
4.0.0-alpha.4 8 09/01/2026
4.0.0-alpha.3 8 08/31/2026
4.0.0-alpha.2 8 08/26/2026
4.0.0-alpha.1 8 08/22/2026
3.22.0 7 09/14/2026
3.21.0 5 09/11/2026
3.20.1 8 09/07/2026
3.20.0 8 09/01/2026
3.19.1 14 07/29/2026
3.19.0 10 07/26/2026
3.18.2 23 06/29/2026
3.18.1 33 04/26/2026
3.18.0 25 04/12/2026
3.17.1 21 04/04/2026
3.17.0 22 03/29/2026
3.16.1 28 03/06/2026
3.16.0 30 03/02/2026
3.15.1 0 10/26/2025
3.15.0 1 09/16/2026
3.14.0 0 03/08/2025
3.13.1 1 09/22/2026
3.13.0 0 08/10/2024
3.12.0 0 09/17/2026
3.11.0 2 09/11/2026
3.10.0 2 09/20/2026
3.9.0 0 09/21/2026
3.8.1 0 02/17/2024
3.8.0 1 09/21/2026
3.7.0 0 09/24/2026
3.6.3 1 09/19/2026
3.6.2 2 09/12/2026
3.6.1 0 02/25/2023
3.6.0 0 01/29/2023
3.5.0 2 09/11/2026
3.4.0 1 09/12/2026
3.3.3 0 08/01/2021
3.3.2 1 09/19/2026
3.3.1 0 04/08/2021
3.3.0 1 09/10/2026
3.2.4 1 09/11/2026
3.2.3 0 10/31/2020
3.2.2 1 09/15/2026
3.2.1 1 09/09/2026
3.2.0 0 10/02/2020
3.1.0 0 07/24/2020
3.0.7 1 09/20/2026
3.0.6 0 07/06/2018
3.0.5 1 09/20/2026
3.0.4 1 09/21/2026
3.0.3 0 02/24/2018
3.0.2 0 01/25/2018
3.0.1 0 01/21/2018
3.0.0 1 09/20/2026
3.0.0-beta1 0 10/08/2017