Autofac.Extras.Quartz
10.0.0
dotnet add package Autofac.Extras.Quartz --version 10.0.0
NuGet\Install-Package Autofac.Extras.Quartz -Version 10.0.0
<PackageReference Include="Autofac.Extras.Quartz" Version="10.0.0" />
paket add Autofac.Extras.Quartz --version 10.0.0
#r "nuget: Autofac.Extras.Quartz, 10.0.0"
// Install Autofac.Extras.Quartz as a Cake Addin #addin nuget:?package=Autofac.Extras.Quartz&version=10.0.0 // Install Autofac.Extras.Quartz as a Cake Tool #tool nuget:?package=Autofac.Extras.Quartz&version=10.0.0
Autofac.Extras.Quartz
Autofac integration package for Quartz.Net.
Autofac.Extras.Quartz creates nested litefime scope for each Quartz Job. Nested scope is disposed after job execution has been completed.
This allows to have single instance per job execution as well as deterministic disposal of resources.
Install package via Nuget: install-package Autofac.Extras.Quartz
Build status
Stable | Pre-release | |
---|---|---|
Build | ||
NuGet | ||
CodeCov |
Usage example
Autofac configuration for Quartz includes two steps:
- Scheduler registration
- Job registration
Scheduler registration
QuartzAutofacFactoryModule
registers custom ISchedulerFactory
and default instance of IScheduler
in Autofac container.
Both factory and schedulere are registered as singletones.
Note: Is is important to resolve IScheduler
from container, rather than using default one to get jobs resolved by Autofac.
Optionally custom Quartz configuration can be passed using ConfigurationProvider
property. Provider is callback which returns settings using NameValueCollection
.
Job scope configuration
Starting with version 7 QuartzAutofacFactoryModule
provides a way to customize lifetime scope configuration for job. This can be done via JobScopeConfigurator
parameter.
cb.Register(_ => new ScopedDependency("global"))
.AsImplementedInterfaces()
.SingleInstance();
cb.RegisterModule(new QuartzAutofacFactoryModule {
JobScopeConfigurator = (builder, jobScopeTag) => {
// override dependency for job scope
builder.Register(_ => new ScopedDependency("job-local "+ DateTime.UtcNow.ToLongTimeString()))
.AsImplementedInterfaces()
.InstancePerMatchingLifetimeScope(jobScopeTag);
}
});
See src/Samples/Shared/Bootstrap.cs for details.
Job registration
QuartzAutofacJobsModule
scans given assemblies and registers all non-abstract implementors of IJob
interface as transient instances.
internal static ContainerBuilder ConfigureContainer(ContainerBuilder cb)
{
// 1) Register IScheduler
cb.RegisterModule(new QuartzAutofacFactoryModule());
// 2) Register jobs
cb.RegisterModule(new QuartzAutofacJobsModule(typeof (CleanupExpiredAnnouncemetsJob).Assembly));
}
Starting Quartz
Make sure to start the scheduler after it was resolved from Autofac. E.g.
var scheduler = _container.Resolve<IScheduler>();
scheduler.Start();
Sample projects
- See src/Samples/Console for .NetCore console application.
- src/Samples/Shared contains source code shared between samples.
TopShelf-based sample was removed since Topshelf.Quartz is not compatible with Quartz 3 as af now.
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. |
.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 is compatible. |
.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
- Autofac (>= 8.0.0 && < 9.0.0)
- JetBrains.Annotations (>= 2023.3.0)
- Quartz (>= 3.8.1 && < 4.0.0)
-
.NETStandard 2.1
- Autofac (>= 8.0.0 && < 9.0.0)
- JetBrains.Annotations (>= 2023.3.0)
- Quartz (>= 3.8.1 && < 4.0.0)
-
net6.0
- Autofac (>= 8.0.0 && < 9.0.0)
- JetBrains.Annotations (>= 2023.3.0)
- Quartz (>= 3.8.1 && < 4.0.0)
-
net7.0
- Autofac (>= 8.0.0 && < 9.0.0)
- JetBrains.Annotations (>= 2023.3.0)
- Quartz (>= 3.8.1 && < 4.0.0)
-
net8.0
- Autofac (>= 8.0.0 && < 9.0.0)
- JetBrains.Annotations (>= 2023.3.0)
- Quartz (>= 3.8.1 && < 4.0.0)
NuGet packages (14)
Showing the top 5 NuGet packages that depend on Autofac.Extras.Quartz:
Package | Downloads |
---|---|
Lauener.Core.Triggers
A easy to use Quartz implementation |
|
TripleSix.Core
Package Description |
|
HwApp.Quartz
HwApp Quartz & Quartzmin |
|
SyWaterStandardLibrary
舜禹框架Core 3.0 |
|
Cogito.Quartz.Autofac
Provides utilites and extensions for Quartz and Autofac. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Autofac.Extras.Quartz:
Repository | Stars |
---|---|
PlexRipper/PlexRipper
The best cross-platform Plex media downloader there is! In active development and feedback is very welcome!
|
Version | Downloads | Last updated |
---|---|---|
10.0.0 | 67,115 | 3/7/2024 |
10.0.0-alpha0007 | 106 | 3/5/2024 |
10.0.0-alpha0006 | 123 | 3/4/2024 |
9.0.0 | 175,207 | 3/27/2023 |
8.2.0 | 59,903 | 1/30/2023 |
8.2.0-alpha0001 | 183 | 1/30/2023 |
8.1.0 | 2,358 | 1/24/2023 |
8.1.0-alpha0003 | 208 | 12/22/2022 |
8.1.0-alpha0002 | 186 | 12/22/2022 |
8.0.0 | 135,881 | 6/3/2022 |
7.4.0-alpha0007 | 245 | 6/2/2022 |
7.4.0-alpha0005 | 8,129 | 5/17/2022 |
7.4.0-alpha0002 | 192 | 5/8/2022 |
7.3.0 | 181,990 | 10/28/2021 |
7.3.0-alpha0009 | 277 | 10/28/2021 |
7.2.0 | 48,314 | 8/2/2021 |
7.2.0-alpha0006 | 290 | 8/1/2021 |
7.1.0 | 64,788 | 4/25/2021 |
7.1.0-alpha0011 | 301 | 8/1/2021 |
7.1.0-alpha0010 | 334 | 8/1/2021 |
7.1.0-alpha0009 | 352 | 8/1/2021 |
7.1.0-alpha0008 | 299 | 6/20/2021 |
7.1.0-alpha0006 | 288 | 4/30/2021 |
7.1.0-alpha0004 | 296 | 4/24/2021 |
7.1.0-alpha0003 | 335 | 4/24/2021 |
7.1.0-alpha0002 | 285 | 4/19/2021 |
7.1.0-alpha0001 | 277 | 4/19/2021 |
7.0.0 | 184,398 | 2/16/2021 |
7.0.0-beta0001 | 288 | 2/14/2021 |
7.0.0-alpha0024 | 306 | 2/14/2021 |
7.0.0-alpha0023 | 311 | 2/9/2021 |
6.3.0-alpha0001 | 303 | 2/9/2021 |
6.2.0 | 13,677 | 1/29/2021 |
6.2.0-beta0001 | 293 | 1/29/2021 |
6.2.0-alpha0008 | 308 | 1/28/2021 |
6.2.0-alpha0001 | 426 | 1/10/2021 |
6.1.0 | 17,682 | 1/10/2021 |
6.1.0-beta0001 | 339 | 1/4/2021 |
6.0.1 | 43,589 | 10/21/2020 |
6.0.1-beta0001 | 444 | 10/21/2020 |
6.0.0 | 61,883 | 10/9/2020 |
6.0.0-beta0001 | 407 | 10/9/2020 |
6.0.0-alpha0041 | 418 | 10/7/2020 |
6.0.0-alpha0039 | 448 | 10/7/2020 |
5.4.0 | 36,473 | 10/7/2020 |
5.4.0-beta0001 | 413 | 10/4/2020 |
5.4.0-alpha0007 | 407 | 10/4/2020 |
5.4.0-alpha0001 | 630 | 8/6/2020 |
5.3.0 | 36,994 | 8/6/2020 |
5.3.0-beta0001 | 432 | 8/6/2020 |
5.3.0-alpha0009 | 442 | 8/6/2020 |
5.3.0-alpha0008 | 497 | 7/27/2020 |
5.3.0-alpha0007 | 509 | 7/8/2020 |
5.3.0-alpha0001 | 1,045 | 5/19/2020 |
5.2.0 | 103,581 | 5/19/2020 |
5.2.0-beta0001 | 471 | 5/19/2020 |
5.2.0-alpha0023 | 465 | 5/19/2020 |
5.2.0-alpha0021 | 745 | 2/17/2020 |
5.1.0 | 154,334 | 2/17/2020 |
5.1.0-alpha0015 | 465 | 2/17/2020 |
5.1.0-alpha0014 | 538 | 2/8/2020 |
5.1.0-alpha0005 | 543 | 1/30/2020 |
5.0.0 | 25,600 | 1/30/2020 |
5.0.0-beta0001 | 552 | 1/30/2020 |
5.0.0-alpha0064 | 477 | 1/30/2020 |
4.7.0-alpha0013 | 2,845 | 1/29/2020 |
4.7.0-alpha0009 | 499 | 1/27/2020 |
4.7.0-alpha0007 | 1,750 | 11/18/2019 |
4.7.0-alpha0006 | 497 | 11/17/2019 |
4.7.0-alpha0005 | 532 | 11/8/2019 |
4.7.0-alpha0004 | 1,150 | 9/2/2019 |
4.6.0 | 204,469 | 9/2/2019 |
4.6.0-beta0001 | 551 | 9/1/2019 |
4.6.0-alpha0036 | 540 | 9/1/2019 |
4.6.0-alpha0034 | 526 | 9/1/2019 |
4.6.0-alpha0033 | 519 | 9/1/2019 |
4.6.0-alpha0028 | 594 | 7/13/2019 |
4.6.0-alpha0026 | 552 | 7/13/2019 |
4.6.0-alpha0024 | 532 | 7/6/2019 |
4.6.0-alpha0022 | 529 | 7/6/2019 |
4.6.0-alpha0018 | 536 | 7/6/2019 |
4.6.0-alpha0008 | 673 | 5/8/2019 |
4.6.0-alpha0005 | 551 | 5/8/2019 |
4.6.0-alpha0003 | 582 | 5/8/2019 |
4.6.0-alpha0001 | 711 | 3/10/2019 |
4.5.1 | 172,825 | 5/8/2019 |
4.5.1-beta0001 | 583 | 5/8/2019 |
4.5.0 | 109,685 | 3/9/2019 |
4.5.0-beta0001 | 586 | 3/9/2019 |
4.5.0-alpha0008 | 556 | 3/9/2019 |
4.5.0-alpha0007 | 581 | 3/8/2019 |
4.5.0-alpha0005 | 606 | 2/25/2019 |
4.5.0-alpha0003 | 836 | 2/11/2019 |
4.5.0-alpha0002 | 656 | 1/28/2019 |
4.5.0-alpha0001 | 667 | 1/27/2019 |
4.4.0 | 102,676 | 1/27/2019 |
4.4.0-beta0001 | 699 | 1/27/2019 |
4.4.0-alpha0014 | 1,039 | 9/29/2018 |
4.4.0-alpha0013 | 757 | 9/29/2018 |
4.4.0-alpha0012 | 741 | 9/29/2018 |
4.4.0-alpha0002 | 816 | 9/23/2018 |
4.4.0-alpha0001 | 749 | 9/19/2018 |
4.3.0 | 152,981 | 9/29/2018 |
4.3.0-beta0001 | 787 | 9/26/2018 |
4.3.0-alpha0008 | 1,383 | 7/11/2018 |
4.3.0-alpha0007 | 947 | 7/7/2018 |
4.3.0-alpha0006 | 944 | 7/7/2018 |
4.3.0-alpha0005 | 953 | 7/1/2018 |
4.2.0 | 41,392 | 7/1/2018 |
4.2.0-beta0001 | 930 | 6/30/2018 |
4.2.0-alpha0004 | 928 | 7/1/2018 |
4.2.0-alpha0003 | 1,344 | 5/13/2018 |
4.2.0-alpha0002 | 974 | 5/13/2018 |
4.2.0-alpha0001 | 977 | 5/13/2018 |
4.1.2 | 1,227 | 6/30/2018 |
4.1.1 | 59,653 | 5/13/2018 |
4.1.0-beta0004 | 979 | 5/13/2018 |
4.1.0-beta0001 | 991 | 5/13/2018 |
4.1.0-alpha0016 | 1,311 | 4/14/2018 |
4.0.0 | 64,831 | 1/14/2018 |
4.0.0-beta0007 | 1,088 | 1/14/2018 |
4.0.0-beta0006 | 1,010 | 1/13/2018 |
4.0.0-beta0001 | 950 | 1/13/2018 |
3.5.0 | 94,534 | 4/14/2018 |
3.5.0-unstable0012 | 1,099 | 1/5/2018 |
3.5.0-unstable0010 | 1,387 | 8/15/2017 |
3.5.0-unstable0004 | 935 | 8/1/2017 |
3.5.0-unstable0003 | 948 | 7/25/2017 |
3.5.0-unstable0002 | 984 | 6/21/2017 |
3.5.0-unstable0001 | 1,032 | 6/15/2017 |
3.5.0-beta0001 | 1,153 | 4/14/2018 |
3.4.0 | 118,713 | 5/5/2017 |
3.4.0-unstable0009 | 987 | 4/5/2017 |
3.4.0-unstable0008 | 955 | 4/5/2017 |
3.4.0-unstable0007 | 982 | 4/5/2017 |
3.4.0-unstable0006 | 932 | 4/5/2017 |
3.4.0-unstable0004 | 1,058 | 2/15/2017 |
3.4.0-unstable0001 | 1,054 | 12/4/2016 |
3.4.0-ci0000 | 935 | 4/5/2017 |
3.3.0 | 71,432 | 11/1/2016 |
3.3.0-unstable0001 | 1,060 | 11/1/2016 |
3.3.0-unstable0000 | 953 | 10/10/2016 |
3.2.0 | 7,765 | 10/10/2016 |
3.2.0-beta0001 | 950 | 10/10/2016 |
3.1.0 | 56,169 | 8/25/2016 |
3.1.0-unstable0022 | 948 | 10/9/2016 |
3.1.0-unstable0021 | 983 | 10/9/2016 |
3.0.0-unstable0020 | 1,069 | 7/17/2016 |
3.0.0-unstable0017 | 1,031 | 8/24/2016 |
3.0.0-unstable0013 | 994 | 7/17/2016 |
3.0.0-unstable0012 | 1,005 | 7/17/2016 |
3.0.0-unstable0011 | 997 | 7/17/2016 |
3.0.0-beta-1 | 1,074 | 7/4/2016 |
3.0.0-alpha0014 | 953 | 7/20/2016 |
2.2.0-unstable0012 | 1,043 | 7/19/2016 |
2.1.1 | 18,731 | 7/16/2016 |
2.1.0 | 37,720 | 4/8/2016 |
2.0.0.1 | 1,620 | 4/6/2016 |
1.7.0 | 39,857 | 10/29/2015 |
1.6.0 | 3,168 | 10/25/2015 |
1.5.1 | 18,784 | 7/14/2015 |
1.5.0 | 1,340 | 7/14/2015 |
1.4.0 | 4,905 | 6/12/2015 |
1.3.0 | 16,723 | 2/1/2015 |
1.2.0 | 3,037 | 1/26/2015 |
1.1.1 | 6,099 | 11/15/2014 |
1.1.0 | 10,159 | 7/13/2014 |
1.0.0 | 2,683 | 7/2/2014 |
0.11.0 | 1,886 | 5/18/2014 |
0.10.0 | 1,776 | 4/9/2014 |
0.9.0 | 5,551 | 4/7/2014 |