Simplify.Scheduler.Job
1.1.0
dotnet add package Simplify.Scheduler.Job --version 1.1.0
NuGet\Install-Package Simplify.Scheduler.Job -Version 1.1.0
<PackageReference Include="Simplify.Scheduler.Job" Version="1.1.0" />
<PackageVersion Include="Simplify.Scheduler.Job" Version="1.1.0" />
<PackageReference Include="Simplify.Scheduler.Job" />
paket add Simplify.Scheduler.Job --version 1.1.0
#r "nuget: Simplify.Scheduler.Job, 1.1.0"
#:package Simplify.Scheduler.Job@1.1.0
#addin nuget:?package=Simplify.Scheduler.Job&version=1.1.0
#tool nuget:?package=Simplify.Scheduler.Job&version=1.1.0
SimplifySchedulerJob
<p align="center"> <img src="assets/logo.png" alt="SimplifySchedulerJob logo" width="200" /> </p>
Component to facilitate the use of Quartz.NET, and eliminating the complex JobFactory configuration.
Compatibility
SimplifySchedulerJob supports .NET 6.0/7.0/8.0 and .NET Standard 2.0.
Dependencies
- Microsoft.Extensions.Configuration.Binder 2.2.0
- Microsoft.Extensions.DependencyInjection.Abstractions 8.0.2
- Quartz.AspNetCore 3.13.1
Installation
With .NET CLI
dotnet add package Simplify.Scheduler.Job
Or with Nuget CLI
NuGet\Install-Package Simplify.Scheduler.Job
Usage/Examples
Add the configuration to your project's appSettings.json file.
{
"MyJobService": {
"CronExpression": "0 0/1 * * * ?"
}
}
Create a class that represents the configuration of the appSettings.json and inherit the JobOptions class.
public class MyLogger : JobOptions
{
}
In the service interface, inherit the IJobService interface and pass the type of the class that represents the configuration of the appSettings.json.
[JobService(typeof(MyLogger))]
public interface IMyJobService : IJobService
{
}
In the service, implement the ExecuteJobAsync method with the routine you want to execute.
public class MyJobService : IMyJobService
{
...
public async Task ExecuteJobAsync()
{
// YOUR CODE
}
...
}
In dependency injection, register the created service and add the SimplifySchedulerJob dependencies.
...
// REGISTER YOUR SERVICE
services.AddTransient(typeof(IMyJobService), typeof(MyJobService));
// REGISTER SIMPLIFYSCHEDULERJOB DEPENDENCIES
services.AddSimplifySchedulerJob(builder.Configuration, assembly);
...
Start SimplifySchedulerJob before starting the application.
...
app.UseSimplifySchedulerJob(assembly);
app.Run();
...
PostgreSQL persistence
Without extra configuration, Quartz uses the in-memory store. To persist jobs
across application restarts, add Quartz properties under
SimplifySchedulerJob:Quartz. The application must also reference Npgsql.
{
"SimplifySchedulerJob": {
"Quartz": {
"quartz.jobStore.type": "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz",
"quartz.jobStore.driverDelegateType": "Quartz.Impl.AdoJobStore.PostgreSQLDelegate, Quartz",
"quartz.jobStore.dataSource": "default",
"quartz.dataSource.default.provider": "Npgsql",
"quartz.dataSource.default.connectionString": "Host=localhost;Database=scheduler;Username=postgres;Password=change-me"
}
}
}
Apply the Quartz PostgreSQL schema before enabling this configuration. Job and trigger identities are stable, so a restart reschedules the existing trigger instead of creating duplicates.
License
See LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.AspNetCore.Routing (>= 2.2.0)
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Quartz.AspNetCore (>= 3.13.1)
-
net6.0
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Quartz.AspNetCore (>= 3.13.1)
-
net7.0
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Quartz.AspNetCore (>= 3.13.1)
-
net8.0
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Quartz.AspNetCore (>= 3.13.1)
-
net9.0
- Microsoft.Extensions.Configuration.Binder (>= 8.0.2)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Quartz.AspNetCore (>= 3.13.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial NuGet package setup with DI/ASP.NET extensions, options binding fix, and improved test coverage. Adds README + symbols to the package.