-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathfeatures.html
More file actions
43 lines (40 loc) · 80 KB
/
Copy pathfeatures.html
File metadata and controls
43 lines (40 loc) · 80 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!doctype html>
<html lang="en-US">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="generator" content="VuePress 2.0.0-rc.28" />
<style>
:root {
--vp-c-bg: #fff;
}
[data-theme='dark'] {
--vp-c-bg: #1b1b1f;
}
html,
body {
background-color: var(--vp-c-bg);
}
</style>
<script>
const useChoice = localStorage.getItem('vuepress-color-scheme')
const systemStatus =
'matchMedia' in window
? window.matchMedia('(prefers-color-scheme: dark)').matches
: false
if (useChoice === 'light') {
document.documentElement.dataset.theme = 'light'
} else if (useChoice === 'dark' || systemStatus) {
document.documentElement.dataset.theme = 'dark'
}
</script>
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="192x192" href="/android-icon-192x192.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><link rel="shortcut icon" href="/favicon.ico"><meta name="msapplication-TileColor" content="#ffffff"><meta name="msapplication-TileImage" content="/ms-icon-144x144.png"><meta name="theme-color" content="#ffffff"><script data-ad-client="ca-pub-2642923360660292" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><title>Quartz.NET Features | Quartz.NET</title><meta name="description" content="Open-source scheduling framework for .NET.">
<link rel="preload" href="/assets/style-DWanz-Ux.css" as="style"><link rel="stylesheet" href="/assets/style-DWanz-Ux.css">
<link rel="modulepreload" href="/assets/app-m4TtRREs.js"><link rel="modulepreload" href="/assets/features-BkSEwrsC.js">
<link rel="prefetch" href="/assets/README-D_OtYCYP.js" as="script"><link rel="prefetch" href="/assets/blog-CfDrVm0G.js" as="script"><link rel="prefetch" href="/assets/download-xCa_4Owq.js" as="script"><link rel="prefetch" href="/assets/faq-CFafM5_U.js" as="script"><link rel="prefetch" href="/assets/license-Barh-V6H.js" as="script"><link rel="prefetch" href="/assets/mailing-list-B4gTcneD.js" as="script"><link rel="prefetch" href="/assets/mailing_list-Bqkl6VhL.js" as="script"><link rel="prefetch" href="/assets/migration_guide-C0feVk_M.js" as="script"><link rel="prefetch" href="/assets/2012-04-09-quartznet-2.0-released-CZAOeBaz.js" as="script"><link rel="prefetch" href="/assets/2012-04-22-quartznet-2.0.1-released-DKV0pFeM.js" as="script"><link rel="prefetch" href="/assets/2012-12-31-quartznet-2.1-released-vHl0oqfX.js" as="script"><link rel="prefetch" href="/assets/2013-01-05-quartznet-2.1.1-released-DGQOyFqr.js" as="script"><link rel="prefetch" href="/assets/2013-01-13-quartznet-2.1.2-released-CO43ztY5.js" as="script"><link rel="prefetch" href="/assets/2013-10-09-quartznet-2.2-released-BZp534-T.js" as="script"><link rel="prefetch" href="/assets/2013-11-24-quartznet-2.2.1-released-DWGhm8Ml.js" as="script"><link rel="prefetch" href="/assets/2014-01-06-website-moved-gihub-pages-h0PYrFIr.js" as="script"><link rel="prefetch" href="/assets/2014-01-07-tutorial-updated-with-2.x-api-changes-ByamNN_l.js" as="script"><link rel="prefetch" href="/assets/2014-02-09-quartznet-2.2.2-released-BfEFKW23.js" as="script"><link rel="prefetch" href="/assets/2014-03-30-quartznet-2.2.3-released-CPapQkeI.js" as="script"><link rel="prefetch" href="/assets/2014-07-27-quartznet-2.2.4-released-BTs7yICT.js" as="script"><link rel="prefetch" href="/assets/2014-11-08-quartznet-2.3-released-CF88ffj_.js" as="script"><link rel="prefetch" href="/assets/2015-01-15-quartznet-2.3.1-released-mVPME_Kc.js" as="script"><link rel="prefetch" href="/assets/2015-01-15-quartznet-2.3.2-released-CwM5wKra.js" as="script"><link rel="prefetch" href="/assets/2015-07-09-quartznet-2.3.3-released-CreaGdf2.js" as="script"><link rel="prefetch" href="/assets/2016-08-16-quartznet-3.0-alpha1-released-DOBjsLF3.js" as="script"><link rel="prefetch" href="/assets/2016-08-18-quartznet-2.4-released-B1P9mGBi.js" as="script"><link rel="prefetch" href="/assets/2016-08-24-quartznet-2.4.1-released-BfDmcunL.js" as="script"><link rel="prefetch" href="/assets/2016-08-24-quartznet-3.0-alpha2-released-DGDYdR3u.js" as="script"><link rel="prefetch" href="/assets/2017-02-18-quartznet-2.5-released-UeVjLWBT.js" as="script"><link rel="prefetch" href="/assets/2017-07-30-quartznet-2.6-released-BVfcLuQc.js" as="script"><link rel="prefetch" href="/assets/2017-07-30-quartznet-3.0-alpha3-released-CTIU-DCa.js" as="script"><link rel="prefetch" href="/assets/2017-10-08-quartznet-3.0-beta1-released-D9eaXG_d.js" as="script"><link rel="prefetch" href="/assets/2017-10-09-quartznet-2.6.1-released-BRH7o21J.js" as="script"><link rel="prefetch" href="/assets/2017-12-30-quartznet-3.0-released-14l1mobK.js" as="script"><link rel="prefetch" href="/assets/2018-01-21-quartznet-3.0.1-released-BD4b-ZCe.js" as="script"><link rel="prefetch" href="/assets/2018-01-25-quartznet-3.0.2-released-CmQWoNX4.js" as="script"><link rel="prefetch" href="/assets/2018-02-24-quartznet-3.0.3-released-TxwTJoBX.js" as="script"><link rel="prefetch" href="/assets/2018-03-04-quartznet-3.0.4-released-6fxHgRAt.js" as="script"><link rel="prefetch" href="/assets/2018-05-27-quartznet-2.6.2-released-DgEgPwr4.js" as="script"><link rel="prefetch" href="/assets/2018-05-27-quartznet-3.0.5-released-dx2v7hg3.js" as="script"><link rel="prefetch" href="/assets/2018-07-06-quartznet-3.0.6-released-Bvv0_Yl4.js" as="script"><link rel="prefetch" href="/assets/2018-10-07-quartznet-3.0.7-released-C3MibB5D.js" as="script"><link rel="prefetch" href="/assets/2020-07-06-website-refresh-B8_iqj6L.js" as="script"><link rel="prefetch" href="/assets/2020-07-08-quartznet-3.1-beta-1-released-CAXQ_uPX.js" as="script"><link rel="prefetch" href="/assets/2020-07-14-quartznet-3.1-beta-2-released-DvUB8JkX.js" as="script"><link rel="prefetch" href="/assets/2020-07-21-quartznet-3.1-beta-3-released-ejys_-M3.js" as="script"><link rel="prefetch" href="/assets/2020-07-21-quartznet-3.1-released-DJPudGhc.js" as="script"><link rel="prefetch" href="/assets/2020-07-24-quartznet-3.1-released-GN3ijypt.js" as="script"><link rel="prefetch" href="/assets/2020-10-01-quartznet-3.2-released-CLwuufvR.js" as="script"><link rel="prefetch" href="/assets/2020-10-18-quartznet-3.2.1-released-BrIYcUpC.js" as="script"><link rel="prefetch" href="/assets/2020-10-19-quartznet-3.2.2-released-Zf51WyD8.js" as="script"><link rel="prefetch" href="/assets/2020-10-31-quartznet-3.2.3-released-MgIB645n.js" as="script"><link rel="prefetch" href="/assets/2021-01-19-quartznet-3.2.4-released-hTUQtJxv.js" as="script"><link rel="prefetch" href="/assets/2021-04-07-quartznet-3.3-released-BwztjkPL.js" as="script"><link rel="prefetch" href="/assets/2021-04-08-quartznet-3.3.1-released-ChXa0MJB.js" as="script"><link rel="prefetch" href="/assets/2021-04-09-quartznet-3.3.2-released-CUCbO37u.js" as="script"><link rel="prefetch" href="/assets/2021-08-01-quartznet-3.3.3-released-BmikhoLB.js" as="script"><link rel="prefetch" href="/assets/2022-03-27-quartznet-3.4-released-CSAMhN0M.js" as="script"><link rel="prefetch" href="/assets/2022-09-18-quartznet-3.5-released-C7LgIFhe.js" as="script"><link rel="prefetch" href="/assets/2023-01-29-quartznet-3.6-released-DNy9uurJ.js" as="script"><link rel="prefetch" href="/assets/2023-02-25-quartznet-3.6.1-released-DxfnEoH1.js" as="script"><link rel="prefetch" href="/assets/2023-02-25-quartznet-3.6.2-released-DiJSz_5G.js" as="script"><link rel="prefetch" href="/assets/2026-09-03-quartznet-4.0-released-BDMsTt4e.js" as="script"><link rel="prefetch" href="/assets/README-Dz5MglGW.js" as="script"><link rel="prefetch" href="/assets/best-practices-CLDa914J.js" as="script"><link rel="prefetch" href="/assets/faq-CqUQ8qBS.js" as="script"><link rel="prefetch" href="/assets/tenancy-patterns-DyryQy98.js" as="script"><link rel="prefetch" href="/assets/troubleshooting-BtGdl9x9.js" as="script"><link rel="prefetch" href="/assets/README-DtDRhwir.js" as="script"><link rel="prefetch" href="/assets/lesson_1-9HiZ9JEg.js" as="script"><link rel="prefetch" href="/assets/lesson_10-CuHfEEBN.js" as="script"><link rel="prefetch" href="/assets/lesson_11-CgcR-J8W.js" as="script"><link rel="prefetch" href="/assets/lesson_12-DBm2IBXG.js" as="script"><link rel="prefetch" href="/assets/lesson_2-BAmxXd7Y.js" as="script"><link rel="prefetch" href="/assets/lesson_3-DVYPebpj.js" as="script"><link rel="prefetch" href="/assets/lesson_4-B3Ofz9RU.js" as="script"><link rel="prefetch" href="/assets/lesson_5-DGh0ECTh.js" as="script"><link rel="prefetch" href="/assets/lesson_6-CVsvIoNM.js" as="script"><link rel="prefetch" href="/assets/lesson_7-Bg2m9YdJ.js" as="script"><link rel="prefetch" href="/assets/lesson_8-D_VuLh76.js" as="script"><link rel="prefetch" href="/assets/lesson_9-DNC01f1U.js" as="script"><link rel="prefetch" href="/assets/schema-changes-DaicH4QD.js" as="script"><link rel="prefetch" href="/assets/README-BivHZEiA.js" as="script"><link rel="prefetch" href="/assets/README-VdUOuUVM.js" as="script"><link rel="prefetch" href="/assets/migration-guide-nH_bN2W8.js" as="script"><link rel="prefetch" href="/assets/quick-start-1Xn9P6dX.js" as="script"><link rel="prefetch" href="/assets/README-DmI6gw2m.js" as="script"><link rel="prefetch" href="/assets/migration-guide-C-Hx7JQk.js" as="script"><link rel="prefetch" href="/assets/miscellaneous-features-yPy2Usc0.js" as="script"><link rel="prefetch" href="/assets/multi-tenancy-BevpMoVD.js" as="script"><link rel="prefetch" href="/assets/quick-start-DuZDeuXz.js" as="script"><link rel="prefetch" href="/assets/README-Dj6MRHjo.js" as="script"><link rel="prefetch" href="/assets/comparison-CCooH3i1.js" as="script"><link rel="prefetch" href="/assets/cron-expressions-CIDjxEd7.js" as="script"><link rel="prefetch" href="/assets/log-events-CHVT-aTI.js" as="script"><link rel="prefetch" href="/assets/migration-guide-CIHiPHen.js" as="script"><link rel="prefetch" href="/assets/multi-tenancy-NQvGL2nk.js" as="script"><link rel="prefetch" href="/assets/operations-0o01_ejO.js" as="script"><link rel="prefetch" href="/assets/production-checklist-DTsVexLu.js" as="script"><link rel="prefetch" href="/assets/quick-start-B_ksdPTT.js" as="script"><link rel="prefetch" href="/assets/README-DwD1Dg8f.js" as="script"><link rel="prefetch" href="/assets/advanced-enterprise-features-kGujR8Y7.js" as="script"><link rel="prefetch" href="/assets/configuration-resource-usage-and-scheduler-factory-C_M1bUS0.js" as="script"><link rel="prefetch" href="/assets/crontriggers-CtJPDbBa.js" as="script"><link rel="prefetch" href="/assets/job-stores-S26K4qkW.js" as="script"><link rel="prefetch" href="/assets/jobs-and-triggers-zbg5C9Jw.js" as="script"><link rel="prefetch" href="/assets/miscellaneous-features-Bl978840.js" as="script"><link rel="prefetch" href="/assets/more-about-jobs-DEFQDmXh.js" as="script"><link rel="prefetch" href="/assets/more-about-triggers-DGA6fnW6.js" as="script"><link rel="prefetch" href="/assets/scheduler-listeners-BslVVYi8.js" as="script"><link rel="prefetch" href="/assets/simpletriggers-BLFqJn9P.js" as="script"><link rel="prefetch" href="/assets/trigger-and-job-listeners-Cu2-PEIv.js" as="script"><link rel="prefetch" href="/assets/using-quartz-Bet2lOZf.js" as="script"><link rel="prefetch" href="/assets/README-CEgSPgXI.js" as="script"><link rel="prefetch" href="/assets/README-DK2u7cCV.js" as="script"><link rel="prefetch" href="/assets/advanced-enterprise-features-Co3jL9pS.js" as="script"><link rel="prefetch" href="/assets/configuration-resource-usage-and-scheduler-factory-DCbpct6O.js" as="script"><link rel="prefetch" href="/assets/crontrigger-C6poqAkP.js" as="script"><link rel="prefetch" href="/assets/crontriggers-nuLTAIO7.js" as="script"><link rel="prefetch" href="/assets/job-stores-DQ6b6I7i.js" as="script"><link rel="prefetch" href="/assets/jobs-and-triggers-DI0az-GY.js" as="script"><link rel="prefetch" href="/assets/miscellaneous-features-DxICx5nV.js" as="script"><link rel="prefetch" href="/assets/more-about-jobs-CjjAknbM.js" as="script"><link rel="prefetch" href="/assets/more-about-triggers-BMZR_oST.js" as="script"><link rel="prefetch" href="/assets/scheduler-listeners-CZO8oE3E.js" as="script"><link rel="prefetch" href="/assets/simpletriggers-Dnluexzb.js" as="script"><link rel="prefetch" href="/assets/trigger-and-job-listeners-gCV5gmCL.js" as="script"><link rel="prefetch" href="/assets/using-quartz-CSqgUy7x.js" as="script"><link rel="prefetch" href="/assets/reference-DXPvbJHh.js" as="script"><link rel="prefetch" href="/assets/db-C2MLSHO4.js" as="script"><link rel="prefetch" href="/assets/crontrigger-nT1y-q2n.js" as="script"><link rel="prefetch" href="/assets/job-template-DieIoMP1.js" as="script"><link rel="prefetch" href="/assets/multiple-triggers-DKIk1lE9.js" as="script"><link rel="prefetch" href="/assets/one-off-job-CNy5nk50.js" as="script"><link rel="prefetch" href="/assets/rescheduling-jobs-CMQqF-yC.js" as="script"><link rel="prefetch" href="/assets/aspnet-core-integration-C1yUxVzv.js" as="script"><link rel="prefetch" href="/assets/dashboard-IAHCE2QF.js" as="script"><link rel="prefetch" href="/assets/hosted-services-integration-HJhUlN9i.js" as="script"><link rel="prefetch" href="/assets/json-configuration-Drf_l66k.js" as="script"><link rel="prefetch" href="/assets/json-serialization-DHk58TGs.js" as="script"><link rel="prefetch" href="/assets/microsoft-di-integration-BZc3kM11.js" as="script"><link rel="prefetch" href="/assets/multiple-schedulers-h4PQAP-i.js" as="script"><link rel="prefetch" href="/assets/opentelemetry-integration-ByLDtNpb.js" as="script"><link rel="prefetch" href="/assets/opentracing-integration-C4fNJqNg.js" as="script"><link rel="prefetch" href="/assets/quartz-3rd-party-plugins-Cigb0HLy.js" as="script"><link rel="prefetch" href="/assets/quartz-jobs-BmBdPLe_.js" as="script"><link rel="prefetch" href="/assets/quartz-plugins-BArqq5sm.js" as="script"><link rel="prefetch" href="/assets/redis--Xk2GsR1.js" as="script"><link rel="prefetch" href="/assets/system-text-json-oiymegUc.js" as="script"><link rel="prefetch" href="/assets/timezoneconverter-integration-BxMj-btf.js" as="script"><link rel="prefetch" href="/assets/README-CQ2M6-kA.js" as="script"><link rel="prefetch" href="/assets/advanced-enterprise-features-FjxEwdGp.js" as="script"><link rel="prefetch" href="/assets/configuration-resource-usage-and-scheduler-factory-CpWwSiTt.js" as="script"><link rel="prefetch" href="/assets/crontrigger-C7rQTJYy.js" as="script"><link rel="prefetch" href="/assets/crontriggers-CWFfaIyS.js" as="script"><link rel="prefetch" href="/assets/execution-groups-WmmXhbXM.js" as="script"><link rel="prefetch" href="/assets/job-stores-C80e89nq.js" as="script"><link rel="prefetch" href="/assets/jobs-and-triggers-DZIngZX1.js" as="script"><link rel="prefetch" href="/assets/more-about-jobs-DWfzCESj.js" as="script"><link rel="prefetch" href="/assets/more-about-triggers-C2ltxOiC.js" as="script"><link rel="prefetch" href="/assets/node-affinity-DkEII8nZ.js" as="script"><link rel="prefetch" href="/assets/overview-Dhkfs8EZ.js" as="script"><link rel="prefetch" href="/assets/recurrencetrigger-BGa8rpJp.js" as="script"><link rel="prefetch" href="/assets/scheduler-builder-BVSOeTxa.js" as="script"><link rel="prefetch" href="/assets/scheduler-listeners-B25XgA4v.js" as="script"><link rel="prefetch" href="/assets/simpletriggers-dLj2cP4U.js" as="script"><link rel="prefetch" href="/assets/trigger-and-job-listeners-BTj8CFMl.js" as="script"><link rel="prefetch" href="/assets/using-quartz-kkYd0N_B.js" as="script"><link rel="prefetch" href="/assets/json-8-PPuFlB.js" as="script"><link rel="prefetch" href="/assets/reference-C4y0SJ9B.js" as="script"><link rel="prefetch" href="/assets/db-DxtMW54m.js" as="script"><link rel="prefetch" href="/assets/README-BTk38Xxc.js" as="script"><link rel="prefetch" href="/assets/aspire-Bk2oOVns.js" as="script"><link rel="prefetch" href="/assets/backfill-0Orkaysl.js" as="script"><link rel="prefetch" href="/assets/coming-from-hangfire-IwEfrYss.js" as="script"><link rel="prefetch" href="/assets/coming-from-tickerq-D1B1Iyeq.js" as="script"><link rel="prefetch" href="/assets/custom-job-store-B8jwJKSg.js" as="script"><link rel="prefetch" href="/assets/dialect-delegate-CTt2uWs9.js" as="script"><link rel="prefetch" href="/assets/embedding-quartz-in-a-library-CWKTY_kA.js" as="script"><link rel="prefetch" href="/assets/extending-quartz-_dYb-zm5.js" as="script"><link rel="prefetch" href="/assets/external-leader-WDnqEW32.js" as="script"><link rel="prefetch" href="/assets/job-continuations-DvyR43MZ.js" as="script"><link rel="prefetch" href="/assets/job-outcomes-BOx_CXSe.js" as="script"><link rel="prefetch" href="/assets/job-template-DjP3BrQF.js" as="script"><link rel="prefetch" href="/assets/lock-handler-cwR8pXsT.js" as="script"><link rel="prefetch" href="/assets/multiple-triggers-sxK4Yrkc.js" as="script"><link rel="prefetch" href="/assets/one-off-job-DzDzQijE.js" as="script"><link rel="prefetch" href="/assets/overlap-policy-Cx84SPwi.js" as="script"><link rel="prefetch" href="/assets/pausing-with-a-reason-BsYkDQEz.js" as="script"><link rel="prefetch" href="/assets/progress-and-execution-logs-CMcncDPY.js" as="script"><link rel="prefetch" href="/assets/rescheduling-jobs-CvG0rRVf.js" as="script"><link rel="prefetch" href="/assets/retrying-failed-jobs-CGOMLcoQ.js" as="script"><link rel="prefetch" href="/assets/trigger-persistence-delegate-q19wVM5j.js" as="script"><link rel="prefetch" href="/assets/trimming-and-native-aot-O8aRL8Us.js" as="script"><link rel="prefetch" href="/assets/wolverine-T7GWY8c9.js" as="script"><link rel="prefetch" href="/assets/aspire-Cc5zSuBb.js" as="script"><link rel="prefetch" href="/assets/aspnet-core-integration-Ym4b9YT2.js" as="script"><link rel="prefetch" href="/assets/dashboard-O8bIoI6l.js" as="script"><link rel="prefetch" href="/assets/hosted-services-integration-DwSSzY6X.js" as="script"><link rel="prefetch" href="/assets/http-api-CqrN7CyF.js" as="script"><link rel="prefetch" href="/assets/http-client-BLCyiDCn.js" as="script"><link rel="prefetch" href="/assets/json-serialization-F8xg0zeC.js" as="script"><link rel="prefetch" href="/assets/microsoft-di-integration-CzhkCJ73.js" as="script"><link rel="prefetch" href="/assets/multiple-schedulers-CN3i6jJf.js" as="script"><link rel="prefetch" href="/assets/opentelemetry-integration-Qqzt-7-t.js" as="script"><link rel="prefetch" href="/assets/quartz-3rd-party-plugins-DXWbhDU2.js" as="script"><link rel="prefetch" href="/assets/quartz-jobs-BRSOQHWz.js" as="script"><link rel="prefetch" href="/assets/quartz-plugins-DqLEk-VC.js" as="script"><link rel="prefetch" href="/assets/redis-BsMY_8Bw.js" as="script"><link rel="prefetch" href="/assets/system-text-json-Bad1aZ_2.js" as="script"><link rel="prefetch" href="/assets/timezoneconverter-integration-CISfpEVy.js" as="script"><link rel="prefetch" href="/assets/weasel-BgialjeO.js" as="script"><link rel="prefetch" href="/assets/README-Z7mnqqwN.js" as="script"><link rel="prefetch" href="/assets/advanced-enterprise-features-CJFCwE5i.js" as="script"><link rel="prefetch" href="/assets/compile-time-checks-COioiZah.js" as="script"><link rel="prefetch" href="/assets/configuration-resource-usage-and-scheduler-factory-D635VRxH.js" as="script"><link rel="prefetch" href="/assets/crontriggers-H6wOp81P.js" as="script"><link rel="prefetch" href="/assets/declaring-jobs-with-attributes-DNsruDrr.js" as="script"><link rel="prefetch" href="/assets/delegate-jobs-BvjVhaRd.js" as="script"><link rel="prefetch" href="/assets/execution-groups-xA9zy3fG.js" as="script"><link rel="prefetch" href="/assets/job-data-map-ianILdyj.js" as="script"><link rel="prefetch" href="/assets/job-execution-middleware-C3KUCPx-.js" as="script"><link rel="prefetch" href="/assets/job-stores-cc_BFVXX.js" as="script"><link rel="prefetch" href="/assets/jobs-and-triggers-B1AS-nYu.js" as="script"><link rel="prefetch" href="/assets/more-about-jobs-DbuWint2.js" as="script"><link rel="prefetch" href="/assets/more-about-triggers-Cgk7jlWX.js" as="script"><link rel="prefetch" href="/assets/node-affinity-DglYIpO8.js" as="script"><link rel="prefetch" href="/assets/querying-jobs-and-triggers-CTO3E1vH.js" as="script"><link rel="prefetch" href="/assets/recurrencetrigger-BHK8SRF6.js" as="script"><link rel="prefetch" href="/assets/scheduler-listeners-CY1afDSL.js" as="script"><link rel="prefetch" href="/assets/simpletriggers-BnyE7WSr.js" as="script"><link rel="prefetch" href="/assets/standalone-scheduler-pLV2xZ8Z.js" as="script"><link rel="prefetch" href="/assets/testing-Behgeigj.js" as="script"><link rel="prefetch" href="/assets/time-and-timeprovider-CGNpt1dg.js" as="script"><link rel="prefetch" href="/assets/trigger-and-job-listeners-B0b1WY5F.js" as="script"><link rel="prefetch" href="/assets/using-quartz-sWuK3fRW.js" as="script"><link rel="prefetch" href="/assets/404.html-C2CMBZT7.js" as="script"><link rel="prefetch" href="/assets/esm-HHJqXGag.js" as="script"><link rel="prefetch" href="/assets/ApplicableVersion-BmvzOuhK.js" as="script"><link rel="prefetch" href="/assets/BlogExcerpt-sSITtiN8.js" as="script"><link rel="prefetch" href="/assets/BlogIndex-CijpGVGA.js" as="script"><link rel="prefetch" href="/assets/Download-C8CmQHQe.js" as="script"><link rel="prefetch" href="/assets/Redirect-CR7TZmm3.js" as="script">
</head>
<body>
<div id="app"><!--[--><div class="vp-theme-container external-link-icon" vp-container><!--[--><header class="vp-navbar" vp-navbar><div class="vp-toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a class="route-link" href="/"><img class="vp-site-logo" src="/quartz-logo-small.png" alt="Quartz.NET"><span class="vp-site-name vp-hide-mobile" aria-hidden="true">Quartz.NET</span></a></span><div class="vp-navbar-items-wrapper" style=""><!--[--><!--]--><nav class="vp-navbar-items vp-hide-mobile" aria-label="site navigation"><!--[--><div class="vp-navbar-item"><a class="route-link auto-link" href="/" aria-label="Home"><!--[--><!--[--><!--]--><!--]-->Home<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link route-link-active auto-link" href="/features.html" aria-label="Features"><!--[--><!--[--><!--]--><!--]-->Features<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link auto-link" href="/blog.html" aria-label="Blog"><!--[--><!--[--><!--]--><!--]-->Blog<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="auto-link external-link" href="https://github.com/quartznet/quartznet/discussions" aria-label="Discussions" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Discussions<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="auto-link external-link" href="https://nuget.org/packages/Quartz" aria-label="NuGet" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->NuGet<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="auto-link external-link" href="https://github.com/quartznet/quartznet" aria-label="GitHub" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->GitHub<!--[--><!--[--><!--]--><!--]--></a></div><!--]--></nav><!--[--><!--]--><button type="button" class="vp-toggle-color-mode-button" title="toggle color mode"><svg class="light-icon" viewbox="0 0 32 32" style=""><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg class="dark-icon" viewbox="0 0 32 32" style="display:none;"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><!--[--><div id="docsearch-container" style="display:none;"></div><div class="docsearch-placeholder"><button type="button" aria-label="Search" aria-keyshortcuts="Control+k" class="DocSearch DocSearch-Button"><span class="DocSearch-Button-Container"><svg width="20" height="20" viewBox="0 0 24 24" aria-hidden="true" class="DocSearch-Search-Icon"><circle cx="11" cy="11" r="8" stroke="currentColor" fill="none" stroke-width="1.4"></circle><path d="m21 21-4.3-4.3" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"></path></svg><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key DocSearch-Button-Key--ctrl">Ctrl</kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div></header><!--]--><div class="vp-sidebar-mask"></div><!--[--><aside class="vp-sidebar" vp-sidebar><nav class="vp-navbar-items" aria-label="site navigation"><!--[--><div class="vp-navbar-item"><a class="route-link auto-link" href="/" aria-label="Home"><!--[--><!--[--><!--]--><!--]-->Home<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link route-link-active auto-link" href="/features.html" aria-label="Features"><!--[--><!--[--><!--]--><!--]-->Features<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="route-link auto-link" href="/blog.html" aria-label="Blog"><!--[--><!--[--><!--]--><!--]-->Blog<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="auto-link external-link" href="https://github.com/quartznet/quartznet/discussions" aria-label="Discussions" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->Discussions<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="auto-link external-link" href="https://nuget.org/packages/Quartz" aria-label="NuGet" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->NuGet<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-navbar-item"><a class="auto-link external-link" href="https://github.com/quartznet/quartznet" aria-label="GitHub" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->GitHub<!--[--><!--[--><!--]--><!--]--></a></div><!--]--></nav><!--[--><!--]--><ul class="vp-sidebar-items"><!--[--><li><p tabindex="0" class="vp-sidebar-item vp-sidebar-heading">Getting Started <!----></p><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/" aria-label="Overview"><!--[--><!--[--><!--]--><!--]-->Overview<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/quick-start.html" aria-label="Quartz 4 Quick Start"><!--[--><!--[--><!--]--><!--]-->Quartz 4 Quick Start<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item collapsible" href="/documentation/quartz-4.x/tutorial/" aria-label="Tutorial"><!--[--><!--[--><!--]--><!--]-->Tutorial<!--[--><!--[--><span class="arrow right"></span><!--]--><!--]--></a><ul class="vp-sidebar-children" style="display:none;"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/using-quartz.html" aria-label="Using Quartz"><!--[--><!--[--><!--]--><!--]-->Using Quartz<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/jobs-and-triggers.html" aria-label="Jobs And Triggers"><!--[--><!--[--><!--]--><!--]-->Jobs And Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/more-about-jobs.html" aria-label="More About Jobs & JobDetails"><!--[--><!--[--><!--]--><!--]-->More About Jobs & JobDetails<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/job-data-map.html" aria-label="Job Data"><!--[--><!--[--><!--]--><!--]-->Job Data<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/more-about-triggers.html" aria-label="More About Triggers"><!--[--><!--[--><!--]--><!--]-->More About Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/querying-jobs-and-triggers.html" aria-label="Querying Jobs and Triggers"><!--[--><!--[--><!--]--><!--]-->Querying Jobs and Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/simpletriggers.html" aria-label="Simple Triggers"><!--[--><!--[--><!--]--><!--]-->Simple Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/crontriggers.html" aria-label="Cron Triggers"><!--[--><!--[--><!--]--><!--]-->Cron Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/recurrencetrigger.html" aria-label="RecurrenceTrigger"><!--[--><!--[--><!--]--><!--]-->RecurrenceTrigger<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/time-and-timeprovider.html" aria-label="Time and TimeProvider"><!--[--><!--[--><!--]--><!--]-->Time and TimeProvider<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/trigger-and-job-listeners.html" aria-label="Trigger and Job Listeners"><!--[--><!--[--><!--]--><!--]-->Trigger and Job Listeners<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/scheduler-listeners.html" aria-label="Scheduler Listeners"><!--[--><!--[--><!--]--><!--]-->Scheduler Listeners<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/job-execution-middleware.html" aria-label="Job Execution Middleware"><!--[--><!--[--><!--]--><!--]-->Job Execution Middleware<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/job-stores.html" aria-label="Job Stores"><!--[--><!--[--><!--]--><!--]-->Job Stores<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/configuration-resource-usage-and-scheduler-factory.html" aria-label="Configuration, Resource Usage and Building a Scheduler"><!--[--><!--[--><!--]--><!--]-->Configuration, Resource Usage and Building a Scheduler<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/standalone-scheduler.html" aria-label="Building a Scheduler Without a Host"><!--[--><!--[--><!--]--><!--]-->Building a Scheduler Without a Host<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/advanced-enterprise-features.html" aria-label="Clustering"><!--[--><!--[--><!--]--><!--]-->Clustering<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/execution-groups.html" aria-label="Execution Groups"><!--[--><!--[--><!--]--><!--]-->Execution Groups<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/node-affinity.html" aria-label="Node Affinity (Preferred Node)"><!--[--><!--[--><!--]--><!--]-->Node Affinity (Preferred Node)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/testing.html" aria-label="Testing"><!--[--><!--[--><!--]--><!--]-->Testing<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/compile-time-checks.html" aria-label="Compile-Time Checks"><!--[--><!--[--><!--]--><!--]-->Compile-Time Checks<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/declaring-jobs-with-attributes.html" aria-label="Declaring Jobs with Attributes"><!--[--><!--[--><!--]--><!--]-->Declaring Jobs with Attributes<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/tutorial/delegate-jobs.html" aria-label="Delegate Jobs"><!--[--><!--[--><!--]--><!--]-->Delegate Jobs<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/configuration/reference.html" aria-label="Configuration Reference"><!--[--><!--[--><!--]--><!--]-->Configuration Reference<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/configuration/json.html" aria-label="JSON Configuration"><!--[--><!--[--><!--]--><!--]-->JSON Configuration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/cron-expressions.html" aria-label="Cron Expression Reference"><!--[--><!--[--><!--]--><!--]-->Cron Expression Reference<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/multi-tenancy.html" aria-label="Multi-Tenancy"><!--[--><!--[--><!--]--><!--]-->Multi-Tenancy<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/comparison.html" aria-label="Comparison"><!--[--><!--[--><!--]--><!--]-->Comparison<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/faq.html" aria-label="Frequently Asked Questions"><!--[--><!--[--><!--]--><!--]-->Frequently Asked Questions<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/best-practices.html" aria-label="Best Practices"><!--[--><!--[--><!--]--><!--]-->Best Practices<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/production-checklist.html" aria-label="Before You Go Live"><!--[--><!--[--><!--]--><!--]-->Before You Go Live<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/operations.html" aria-label="Operating a Cluster"><!--[--><!--[--><!--]--><!--]-->Operating a Cluster<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/log-events.html" aria-label="Log Events"><!--[--><!--[--><!--]--><!--]-->Log Events<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/tenancy-patterns.html" aria-label="Tenancy Patterns"><!--[--><!--[--><!--]--><!--]-->Tenancy Patterns<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/db/" aria-label="Database Schema"><!--[--><!--[--><!--]--><!--]-->Database Schema<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/database/schema-changes.html" aria-label="Database Schema Changes"><!--[--><!--[--><!--]--><!--]-->Database Schema Changes<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/migration-guide.html" aria-label="Migration Guide"><!--[--><!--[--><!--]--><!--]-->Migration Guide<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/troubleshooting.html" aria-label="Troubleshooting"><!--[--><!--[--><!--]--><!--]-->Troubleshooting<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="auto-link external-link vp-sidebar-item" href="https://www.quartz-scheduler.net/apidoc/4.x/" aria-label="API Documentation" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->API Documentation<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><a class="route-link auto-link vp-sidebar-item vp-sidebar-heading" href="/documentation/quartz-4.x/how-tos/" aria-label="How To's"><!--[--><!--[--><!--]--><!--]-->How To's<!--[--><!--[--><!--]--><!--]--></a><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/one-off-job.html" aria-label="One-Off Job"><!--[--><!--[--><!--]--><!--]-->One-Off Job<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/rescheduling-jobs.html" aria-label="Rescheduling Jobs"><!--[--><!--[--><!--]--><!--]-->Rescheduling Jobs<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/backfill.html" aria-label="Backfill"><!--[--><!--[--><!--]--><!--]-->Backfill<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/retrying-failed-jobs.html" aria-label="Retrying Failed Jobs"><!--[--><!--[--><!--]--><!--]-->Retrying Failed Jobs<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/pausing-with-a-reason.html" aria-label="Pausing with a Reason"><!--[--><!--[--><!--]--><!--]-->Pausing with a Reason<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/job-continuations.html" aria-label="Job Continuations"><!--[--><!--[--><!--]--><!--]-->Job Continuations<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/overlap-policy.html" aria-label="Overlap Policy"><!--[--><!--[--><!--]--><!--]-->Overlap Policy<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/progress-and-execution-logs.html" aria-label="Progress and Execution Logs"><!--[--><!--[--><!--]--><!--]-->Progress and Execution Logs<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/job-outcomes.html" aria-label="Job Outcomes"><!--[--><!--[--><!--]--><!--]-->Job Outcomes<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/multiple-triggers.html" aria-label="Multiple Triggers"><!--[--><!--[--><!--]--><!--]-->Multiple Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/job-template.html" aria-label="Job Template"><!--[--><!--[--><!--]--><!--]-->Job Template<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/aspire.html" aria-label="Running Quartz under Aspire"><!--[--><!--[--><!--]--><!--]-->Running Quartz under Aspire<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/wolverine.html" aria-label="Quartz.NET with Wolverine"><!--[--><!--[--><!--]--><!--]-->Quartz.NET with Wolverine<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/coming-from-hangfire.html" aria-label="Coming from Hangfire"><!--[--><!--[--><!--]--><!--]-->Coming from Hangfire<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/coming-from-tickerq.html" aria-label="Coming from TickerQ"><!--[--><!--[--><!--]--><!--]-->Coming from TickerQ<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/embedding-quartz-in-a-library.html" aria-label="Embedding Quartz in a Library"><!--[--><!--[--><!--]--><!--]-->Embedding Quartz in a Library<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/external-leader.html" aria-label="Running under an External Leader Election"><!--[--><!--[--><!--]--><!--]-->Running under an External Leader Election<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/trimming-and-native-aot.html" aria-label="Publishing Trimmed and Native AOT"><!--[--><!--[--><!--]--><!--]-->Publishing Trimmed and Native AOT<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/extending-quartz.html" aria-label="Extending Quartz: what is open, what is closed, and how to ask"><!--[--><!--[--><!--]--><!--]-->Extending Quartz: what is open, what is closed, and how to ask<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/custom-job-store.html" aria-label="A Job Store of Your Own"><!--[--><!--[--><!--]--><!--]-->A Job Store of Your Own<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/dialect-delegate.html" aria-label="A Driver Delegate for a New Database"><!--[--><!--[--><!--]--><!--]-->A Driver Delegate for a New Database<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/trigger-persistence-delegate.html" aria-label="Persisting a Custom Trigger Type"><!--[--><!--[--><!--]--><!--]-->Persisting a Custom Trigger Type<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/how-tos/lock-handler.html" aria-label="A Lock Handler of Your Own"><!--[--><!--[--><!--]--><!--]-->A Lock Handler of Your Own<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item vp-sidebar-heading">Packages <!----></p><ul class="vp-sidebar-children" style=""><!--[--><li><p tabindex="0" class="vp-sidebar-item">Quartz Core Additions <!----></p><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/quartz-jobs.html" aria-label="Jobs"><!--[--><!--[--><!--]--><!--]-->Jobs<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/system-text-json.html" aria-label="Serialization (System.Text.Json)"><!--[--><!--[--><!--]--><!--]-->Serialization (System.Text.Json)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/json-serialization.html" aria-label="JSON Serialization"><!--[--><!--[--><!--]--><!--]-->JSON Serialization<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/quartz-plugins.html" aria-label="Plugins"><!--[--><!--[--><!--]--><!--]-->Plugins<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item">Integrations <!----></p><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/aspire.html" aria-label="Aspire Integration"><!--[--><!--[--><!--]--><!--]-->Aspire Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/aspnet-core-integration.html" aria-label="ASP.NET Core Integration"><!--[--><!--[--><!--]--><!--]-->ASP.NET Core Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/http-api.html" aria-label="HTTP API"><!--[--><!--[--><!--]--><!--]-->HTTP API<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/http-client.html" aria-label="HTTP Client"><!--[--><!--[--><!--]--><!--]-->HTTP Client<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/dashboard.html" aria-label="Dashboard"><!--[--><!--[--><!--]--><!--]-->Dashboard<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/hosted-services-integration.html" aria-label="Hosted Services Integration"><!--[--><!--[--><!--]--><!--]-->Hosted Services Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/microsoft-di-integration.html" aria-label="Microsoft DI Integration"><!--[--><!--[--><!--]--><!--]-->Microsoft DI Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/multiple-schedulers.html" aria-label="Multiple Schedulers with Microsoft DI"><!--[--><!--[--><!--]--><!--]-->Multiple Schedulers with Microsoft DI<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/opentelemetry-integration.html" aria-label="Observability"><!--[--><!--[--><!--]--><!--]-->Observability<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/redis.html" aria-label="Redis Lock Handler"><!--[--><!--[--><!--]--><!--]-->Redis Lock Handler<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/timezoneconverter-integration.html" aria-label="TimeZoneConverter Integration"><!--[--><!--[--><!--]--><!--]-->TimeZoneConverter Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/weasel.html" aria-label="Weasel Schema Management"><!--[--><!--[--><!--]--><!--]-->Weasel Schema Management<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-4.x/packages/quartz-3rd-party-plugins.html" aria-label="3rd Party Plugins for Quartz"><!--[--><!--[--><!--]--><!--]-->3rd Party Plugins for Quartz<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item vp-sidebar-heading collapsible">Quartz 3.x <span class="right arrow"></span></p><ul class="vp-sidebar-children" style="display:none;"><!--[--><li><p tabindex="0" class="vp-sidebar-item">Getting Started <!----></p><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/quick-start.html" aria-label="Quartz 3 Quick Start"><!--[--><!--[--><!--]--><!--]-->Quartz 3 Quick Start<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item collapsible" href="/documentation/quartz-3.x/tutorial/" aria-label="Tutorial"><!--[--><!--[--><!--]--><!--]-->Tutorial<!--[--><!--[--><span class="arrow right"></span><!--]--><!--]--></a><ul class="vp-sidebar-children" style="display:none;"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/using-quartz.html" aria-label="Using Quartz"><!--[--><!--[--><!--]--><!--]-->Using Quartz<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/overview.html" aria-label="Library Overview"><!--[--><!--[--><!--]--><!--]-->Library Overview<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/jobs-and-triggers.html" aria-label="Jobs And Triggers"><!--[--><!--[--><!--]--><!--]-->Jobs And Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/more-about-jobs.html" aria-label="More About Jobs"><!--[--><!--[--><!--]--><!--]-->More About Jobs<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/more-about-triggers.html" aria-label="More About Triggers"><!--[--><!--[--><!--]--><!--]-->More About Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/execution-groups.html" aria-label="Execution Groups"><!--[--><!--[--><!--]--><!--]-->Execution Groups<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/node-affinity.html" aria-label="Node Affinity (Preferred Node)"><!--[--><!--[--><!--]--><!--]-->Node Affinity (Preferred Node)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/simpletriggers.html" aria-label="Simple Triggers"><!--[--><!--[--><!--]--><!--]-->Simple Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/crontriggers.html" aria-label="Cron Triggers"><!--[--><!--[--><!--]--><!--]-->Cron Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/recurrencetrigger.html" aria-label="RecurrenceTrigger"><!--[--><!--[--><!--]--><!--]-->RecurrenceTrigger<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/trigger-and-job-listeners.html" aria-label="Trigger and Job Listeners"><!--[--><!--[--><!--]--><!--]-->Trigger and Job Listeners<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/scheduler-listeners.html" aria-label="Scheduler Listeners"><!--[--><!--[--><!--]--><!--]-->Scheduler Listeners<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/job-stores.html" aria-label="Job Stores"><!--[--><!--[--><!--]--><!--]-->Job Stores<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/scheduler-builder.html" aria-label="Tuning the Scheduler"><!--[--><!--[--><!--]--><!--]-->Tuning the Scheduler<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/configuration-resource-usage-and-scheduler-factory.html" aria-label="Configuration, Resource Usage and SchedulerFactory"><!--[--><!--[--><!--]--><!--]-->Configuration, Resource Usage and SchedulerFactory<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/tutorial/advanced-enterprise-features.html" aria-label="Advanced (Enterprise) Features"><!--[--><!--[--><!--]--><!--]-->Advanced (Enterprise) Features<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/configuration/reference.html" aria-label="Configuration Reference"><!--[--><!--[--><!--]--><!--]-->Configuration Reference<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/json-configuration.html" aria-label="JSON Configuration"><!--[--><!--[--><!--]--><!--]-->JSON Configuration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/multi-tenancy.html" aria-label="Multi-Tenancy"><!--[--><!--[--><!--]--><!--]-->Multi-Tenancy<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/faq.html" aria-label="Frequently Asked Questions"><!--[--><!--[--><!--]--><!--]-->Frequently Asked Questions<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/best-practices.html" aria-label="Best Practices"><!--[--><!--[--><!--]--><!--]-->Best Practices<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/tenancy-patterns.html" aria-label="Tenancy Patterns"><!--[--><!--[--><!--]--><!--]-->Tenancy Patterns<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/troubleshooting.html" aria-label="Troubleshooting"><!--[--><!--[--><!--]--><!--]-->Troubleshooting<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="auto-link external-link vp-sidebar-item" href="https://docs.quartz-scheduler.net/apidoc/3.0" aria-label="API Documentation" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->API Documentation<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/db/" aria-label="Database Schema"><!--[--><!--[--><!--]--><!--]-->Database Schema<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/database/schema-changes.html" aria-label="Database Schema Changes"><!--[--><!--[--><!--]--><!--]-->Database Schema Changes<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/migration-guide.html" aria-label="Migration Guide"><!--[--><!--[--><!--]--><!--]-->Migration Guide<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/miscellaneous-features.html" aria-label="Miscellaneous Features"><!--[--><!--[--><!--]--><!--]-->Miscellaneous Features<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item">How To's <!----></p><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/how-tos/one-off-job.html" aria-label="One-Off Job"><!--[--><!--[--><!--]--><!--]-->One-Off Job<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/how-tos/multiple-triggers.html" aria-label="Multiple Triggers"><!--[--><!--[--><!--]--><!--]-->Multiple Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/how-tos/job-template.html" aria-label="Job Template"><!--[--><!--[--><!--]--><!--]-->Job Template<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/how-tos/crontrigger.html" aria-label="Using the CronTrigger"><!--[--><!--[--><!--]--><!--]-->Using the CronTrigger<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/how-tos/rescheduling-jobs.html" aria-label="Rescheduling Jobs"><!--[--><!--[--><!--]--><!--]-->Rescheduling Jobs<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item">Packages <!----></p><ul class="vp-sidebar-children" style=""><!--[--><li><p tabindex="0" class="vp-sidebar-item">Quartz Core Additions <!----></p><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/dashboard.html" aria-label="Dashboard"><!--[--><!--[--><!--]--><!--]-->Dashboard<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/quartz-jobs.html" aria-label="Jobs"><!--[--><!--[--><!--]--><!--]-->Jobs<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/system-text-json.html" aria-label="Serialization (System.Text.Json)"><!--[--><!--[--><!--]--><!--]-->Serialization (System.Text.Json)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/json-serialization.html" aria-label="Serialization (Newtonsoft Json.NET)"><!--[--><!--[--><!--]--><!--]-->Serialization (Newtonsoft Json.NET)<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/quartz-plugins.html" aria-label="Plugins"><!--[--><!--[--><!--]--><!--]-->Plugins<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item">Integrations <!----></p><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/aspnet-core-integration.html" aria-label="ASP.NET Core Integration"><!--[--><!--[--><!--]--><!--]-->ASP.NET Core Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/hosted-services-integration.html" aria-label="Hosted Services Integration"><!--[--><!--[--><!--]--><!--]-->Hosted Services Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/microsoft-di-integration.html" aria-label="Microsoft DI Integration"><!--[--><!--[--><!--]--><!--]-->Microsoft DI Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/multiple-schedulers.html" aria-label="Multiple Schedulers with Microsoft DI"><!--[--><!--[--><!--]--><!--]-->Multiple Schedulers with Microsoft DI<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/opentelemetry-integration.html" aria-label="OpenTelemetry Integration"><!--[--><!--[--><!--]--><!--]-->OpenTelemetry Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/opentracing-integration.html" aria-label="OpenTracing Integration"><!--[--><!--[--><!--]--><!--]-->OpenTracing Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/redis.html" aria-label="Redis Lock Handler"><!--[--><!--[--><!--]--><!--]-->Redis Lock Handler<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/timezoneconverter-integration.html" aria-label="TimeZoneConverter Integration"><!--[--><!--[--><!--]--><!--]-->TimeZoneConverter Integration<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-3.x/packages/quartz-3rd-party-plugins.html" aria-label="3rd Party Plugins for Quartz"><!--[--><!--[--><!--]--><!--]-->3rd Party Plugins for Quartz<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><p tabindex="0" class="vp-sidebar-item vp-sidebar-heading collapsible">Old Releases <span class="right arrow"></span></p><ul class="vp-sidebar-children" style="display:none;"><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/" aria-label="Quartz 2.x"><!--[--><!--[--><!--]--><!--]-->Quartz 2.x<!--[--><!--[--><!--]--><!--]--></a><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/quick-start.html" aria-label="Quartz 2 Quick Start"><!--[--><!--[--><!--]--><!--]-->Quartz 2 Quick Start<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/" aria-label="Tutorial"><!--[--><!--[--><!--]--><!--]-->Tutorial<!--[--><!--[--><!--]--><!--]--></a><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/using-quartz.html" aria-label="Lesson 1: Using Quartz"><!--[--><!--[--><!--]--><!--]-->Lesson 1: Using Quartz<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/jobs-and-triggers.html" aria-label="Lesson 2: Jobs And Triggers"><!--[--><!--[--><!--]--><!--]-->Lesson 2: Jobs And Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/more-about-jobs.html" aria-label="Lesson 3: More About Jobs & JobDetails"><!--[--><!--[--><!--]--><!--]-->Lesson 3: More About Jobs & JobDetails<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/more-about-triggers.html" aria-label="Lesson 4: More About Triggers"><!--[--><!--[--><!--]--><!--]-->Lesson 4: More About Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/simpletriggers.html" aria-label="Lesson 5: SimpleTrigger"><!--[--><!--[--><!--]--><!--]-->Lesson 5: SimpleTrigger<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/crontriggers.html" aria-label="Lesson 6: CronTrigger"><!--[--><!--[--><!--]--><!--]-->Lesson 6: CronTrigger<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/trigger-and-job-listeners.html" aria-label="Lesson 7: TriggerListeners and JobListeners"><!--[--><!--[--><!--]--><!--]-->Lesson 7: TriggerListeners and JobListeners<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/scheduler-listeners.html" aria-label="Lesson 8: SchedulerListeners"><!--[--><!--[--><!--]--><!--]-->Lesson 8: SchedulerListeners<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/job-stores.html" aria-label="Lesson 9: JobStores"><!--[--><!--[--><!--]--><!--]-->Lesson 9: JobStores<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/configuration-resource-usage-and-scheduler-factory.html" aria-label="Lesson 10: Configuration, Resource Usage and SchedulerFactory"><!--[--><!--[--><!--]--><!--]-->Lesson 10: Configuration, Resource Usage and SchedulerFactory<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/advanced-enterprise-features.html" aria-label="Lesson 11: Advanced (Enterprise) Features"><!--[--><!--[--><!--]--><!--]-->Lesson 11: Advanced (Enterprise) Features<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/miscellaneous-features.html" aria-label="Lesson 12: Miscellaneous Features of Quartz"><!--[--><!--[--><!--]--><!--]-->Lesson 12: Miscellaneous Features of Quartz<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/tutorial/crontrigger.html" aria-label="CronTrigger Tutorial"><!--[--><!--[--><!--]--><!--]-->CronTrigger Tutorial<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/configuration/" aria-label="Configuration Reference"><!--[--><!--[--><!--]--><!--]-->Configuration Reference<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-2.x/migration-guide.html" aria-label="Migration Guide"><!--[--><!--[--><!--]--><!--]-->Migration Guide<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="auto-link external-link vp-sidebar-item" href="https://docs.quartz-scheduler.net/apidoc/2.0/html" aria-label="API Documentation" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->API Documentation<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/" aria-label="Quartz 1.x"><!--[--><!--[--><!--]--><!--]-->Quartz 1.x<!--[--><!--[--><!--]--><!--]--></a><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/" aria-label="Tutorial"><!--[--><!--[--><!--]--><!--]-->Tutorial<!--[--><!--[--><!--]--><!--]--></a><ul class="vp-sidebar-children" style=""><!--[--><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/using-quartz.html" aria-label="Lesson 1: Using Quartz"><!--[--><!--[--><!--]--><!--]-->Lesson 1: Using Quartz<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/jobs-and-triggers.html" aria-label="Lesson 2: Jobs And Triggers"><!--[--><!--[--><!--]--><!--]-->Lesson 2: Jobs And Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/more-about-jobs.html" aria-label="Lesson 3: More About Jobs & JobDetails"><!--[--><!--[--><!--]--><!--]-->Lesson 3: More About Jobs & JobDetails<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/more-about-triggers.html" aria-label="Lesson 4: More About Triggers"><!--[--><!--[--><!--]--><!--]-->Lesson 4: More About Triggers<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/simpletriggers.html" aria-label="Lesson 5: SimpleTrigger"><!--[--><!--[--><!--]--><!--]-->Lesson 5: SimpleTrigger<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/crontriggers.html" aria-label="Lesson 6: CronTrigger"><!--[--><!--[--><!--]--><!--]-->Lesson 6: CronTrigger<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/trigger-and-job-listeners.html" aria-label="Lesson 7: TriggerListeners and JobListeners"><!--[--><!--[--><!--]--><!--]-->Lesson 7: TriggerListeners and JobListeners<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/scheduler-listeners.html" aria-label="Lesson 8: SchedulerListeners"><!--[--><!--[--><!--]--><!--]-->Lesson 8: SchedulerListeners<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/job-stores.html" aria-label="Lesson 9: JobStores"><!--[--><!--[--><!--]--><!--]-->Lesson 9: JobStores<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/configuration-resource-usage-and-scheduler-factory.html" aria-label="Lesson 10: Configuration, Resource Usage and SchedulerFactory"><!--[--><!--[--><!--]--><!--]-->Lesson 10: Configuration, Resource Usage and SchedulerFactory<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/advanced-enterprise-features.html" aria-label="Lesson 11: Advanced (Enterprise) Features"><!--[--><!--[--><!--]--><!--]-->Lesson 11: Advanced (Enterprise) Features<!--[--><!--[--><!--]--><!--]--></a><!----></li><li><a class="route-link auto-link vp-sidebar-item" href="/documentation/quartz-1.x/tutorial/miscellaneous-features.html" aria-label="Lesson 12: Miscellaneous Features of Quartz"><!--[--><!--[--><!--]--><!--]-->Lesson 12: Miscellaneous Features of Quartz<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><li><a class="auto-link external-link vp-sidebar-item" href="https://docs.quartz-scheduler.net/apidoc/1.0/html" aria-label="API Documentation" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><!--]--><!--]-->API Documentation<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul></li><li><a class="route-link auto-link vp-sidebar-item vp-sidebar-heading" href="/license.html" aria-label="License"><!--[--><!--[--><!--]--><!--]-->License<!--[--><!--[--><!--]--><!--]--></a><!----></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="vp-page"><!--[--><!--]--><div vp-content><!--[--><!--]--><div id="content"><p>Quartz.NET 4.x targets .NET 10. The <a class="route-link" href="/documentation/quartz-4.x/quick-start.html">quick start</a> gets a scheduler running in a few lines.</p><h2 id="runtime-environments" tabindex="-1"><a class="header-anchor" href="#runtime-environments"><span>Runtime Environments</span></a></h2><ul><li>Runs embedded in your application (a console program, a worker service, an ASP.NET Core application), and the application's container builds the scheduler.</li><li>Several schedulers can run side by side in one process, each with its own store, thread pool and listeners. This is how a host serves <a class="route-link" href="/documentation/quartz-4.x/multi-tenancy.html">several tenants</a>.</li><li>Any number of processes sharing one database form a <a class="route-link" href="/documentation/quartz-4.x/tutorial/advanced-enterprise-features.html">cluster</a> that balances work across its nodes and takes over the work of a node that dies.</li><li>A scheduler can also be built <a class="route-link" href="/documentation/quartz-4.x/tutorial/standalone-scheduler.html">without an application container</a>, or <a class="route-link" href="/documentation/quartz-4.x/how-tos/embedding-quartz-in-a-library.html">embedded in a library</a> that should not own the host's.</li></ul><h2 id="job-scheduling" tabindex="-1"><a class="header-anchor" href="#job-scheduling"><span>Job Scheduling</span></a></h2><p>Jobs run when a trigger fires. Triggers can combine nearly any of these:</p><ul><li>at a certain time of day (to the millisecond)</li><li>on certain days of the week</li><li>on certain days of the month</li><li>on certain days of the year</li><li>not on certain days listed in a registered calendar (such as business holidays)</li><li>repeated a specific number of times</li><li>repeated until a specific time/date</li><li>repeated indefinitely</li><li>repeated with a delay interval</li><li>by an <a class="route-link" href="/documentation/quartz-4.x/tutorial/recurrencetrigger.html">RFC 5545 recurrence rule</a>, the rule an iCalendar event repeats on</li></ul><p><a class="route-link" href="/documentation/quartz-4.x/cron-expressions.html">Cron syntax</a> is the usual way to state the first four. It reads Unix five-field expressions as well as Quartz's own.</p><ul><li>Jobs and triggers have names and can be organized into named groups.</li><li>A job is added to the scheduler once and can be registered with several triggers.</li><li>A trigger carries a priority and a misfire instruction, so a scheduler that falls behind resumes in the order you chose, not the order it reads rows.</li></ul><h2 id="job-execution" tabindex="-1"><a class="header-anchor" href="#job-execution"><span>Job Execution</span></a></h2><ul><li>A job is any .NET class implementing <code>IJob</code>: one <code>Execute</code> method taking the execution context and a <code>CancellationToken</code>.</li><li>The container constructs the job, so a job takes its dependencies as constructor parameters, and each firing gets its own scope.</li><li>A firing carries a <a class="route-link" href="/documentation/quartz-4.x/tutorial/job-data-map.html"><code>JobDataMap</code></a>, whose entries can be <a class="route-link" href="/documentation/quartz-4.x/tutorial/more-about-jobs.html">bound to the job's properties</a> by name.</li><li>When a trigger fires, the scheduler notifies any <a class="route-link" href="/documentation/quartz-4.x/tutorial/trigger-and-job-listeners.html"><code>IJobListener</code> and <code>ITriggerListener</code></a> objects, again after the job has run. A trigger listener can veto a firing before it starts.</li><li><a class="route-link" href="/documentation/quartz-4.x/tutorial/job-execution-middleware.html">Middleware</a> wraps execution as ASP.NET Core middleware wraps a request. The shipped middleware <a class="route-link" href="/documentation/quartz-4.x/how-tos/retrying-failed-jobs.html">retries a failed job</a> and cancels one that overran its <code>[JobTimeout]</code>.</li><li><code>[DisallowConcurrentExecution]</code> stops a job overlapping itself; <code>[PersistJobDataAfterExecution]</code> keeps its map across firings.</li><li>Running jobs can be listed and interrupted across the whole cluster, and a trigger reports <code>TriggerState.Executing</code> while its job runs.</li></ul><h2 id="job-persistence" tabindex="-1"><a class="header-anchor" href="#job-persistence"><span>Job Persistence</span></a></h2><ul><li>Job storage is pluggable through the <code>IJobStore</code> interface.</li><li>The included ADO.NET job store keeps jobs and triggers in a relational database. SQL Server, PostgreSQL, MySQL, Oracle, SQLite and Firebird each have a driver delegate, and <a href="https://github.com/quartznet/quartznet/tree/main/database" target="_blank" rel="noopener noreferrer"><code>database/</code></a> has the schema and migrations for each.</li><li>The included <code>RAMJobStore</code> keeps jobs and triggers in memory. Nothing persists between runs, but no external database is needed.</li><li>A store writes JSON, through System.Text.Json or <a class="route-link" href="/documentation/quartz-4.x/packages/json-serialization.html">Newtonsoft.Json</a>.</li><li>The store can <a class="route-link" href="/documentation/quartz-4.x/tutorial/job-stores.html">join a transaction the application owns</a>, so saving your data and scheduling the job that acts on it commit together.</li></ul><h2 id="clustering" tabindex="-1"><a class="header-anchor" href="#clustering"><span>Clustering</span></a></h2><ul><li>Fail-over: another node picks up a dead node's in-flight recoverable work.</li><li>Load balancing: any node in the cluster may fire any trigger.</li><li><a class="route-link" href="/documentation/quartz-4.x/tutorial/node-affinity.html">Node affinity</a> and <a class="route-link" href="/documentation/quartz-4.x/tutorial/execution-groups.html">execution groups</a> control <em>which</em> node runs a job and how many run at once.</li><li>An <a class="route-link" href="/documentation/quartz-4.x/how-tos/external-leader.html">external leader</a> can decide which node is active, when something outside Quartz already elects one.</li></ul><h2 id="listeners-plug-ins" tabindex="-1"><a class="header-anchor" href="#listeners-plug-ins"><span>Listeners & Plug-Ins</span></a></h2><ul><li>Listener interfaces let applications catch scheduling events to monitor or control job and trigger behavior.</li><li><a class="route-link" href="/documentation/quartz-4.x/packages/quartz-plugins.html">Plug-ins</a> add functionality, such as keeping a history of job executions or loading job and trigger definitions from a file.</li><li>Quartz ships plug-ins and listeners, and <a class="route-link" href="/documentation/quartz-4.x/packages/quartz-jobs.html">ready-made jobs</a> for scanning a directory, sending mail and running a process.</li></ul><h2 id="operating-it" tabindex="-1"><a class="header-anchor" href="#operating-it"><span>Operating It</span></a></h2><ul><li><a class="route-link" href="/documentation/quartz-4.x/packages/opentelemetry-integration.html">OpenTelemetry</a>: one activity source and one meter, so firings show up as spans and metrics in whatever you already collect.</li><li>A <a class="route-link" href="/documentation/quartz-4.x/packages/hosted-services-integration.html#health-checks">health check</a> for the scheduler and, in a cluster, for the node's own check-in.</li><li><a class="route-link" href="/documentation/quartz-4.x/log-events.html">Every log message has an event id</a>, catalogued with its level and template.</li><li>A <a class="route-link" href="/documentation/quartz-4.x/packages/dashboard.html">dashboard</a> and an <a class="route-link" href="/documentation/quartz-4.x/packages/http-api.html">HTTP API</a> to inspect and drive a running scheduler, and a <a class="route-link" href="/documentation/quartz-4.x/packages/http-client.html">client</a> that uses that API as if it were a local <code>IScheduler</code>. Both surfaces refuse to start unless something authorizes them.</li><li>A <a class="route-link" href="/documentation/quartz-4.x/production-checklist.html">production checklist</a> and an <a class="route-link" href="/documentation/quartz-4.x/operations.html">operations guide</a> covering rolling upgrades, failover, sizing and backup.</li></ul></div><!--[--><!--]--></div><footer class="vp-page-meta"><div class="vp-meta-item edit-link"><a class="auto-link external-link label" href="https://github.com/quartznet/quartznet/edit/main/docs/features.md" aria-label="Help us by improving this page!" rel="noopener noreferrer" target="_blank"><!--[--><!--[--><svg class="edit-icon" viewbox="0 0 1024 1024"><g fill="currentColor"><path d="M430.818 653.65a60.46 60.46 0 0 1-50.96-93.281l71.69-114.012 7.773-10.365L816.038 80.138A60.46 60.46 0 0 1 859.225 62a60.46 60.46 0 0 1 43.186 18.138l43.186 43.186a60.46 60.46 0 0 1 0 86.373L588.879 565.55l-8.637 8.637-117.466 68.234a60.46 60.46 0 0 1-31.958 11.229z"></path><path d="M728.802 962H252.891A190.883 190.883 0 0 1 62.008 771.98V296.934a190.883 190.883 0 0 1 190.883-192.61h267.754a60.46 60.46 0 0 1 0 120.92H252.891a69.962 69.962 0 0 0-69.098 69.099V771.98a69.962 69.962 0 0 0 69.098 69.098h475.911A69.962 69.962 0 0 0 797.9 771.98V503.363a60.46 60.46 0 1 1 120.922 0V771.98A190.883 190.883 0 0 1 728.802 962z"></path></g></svg><!--]--><!--]-->Help us by improving this page!<!--[--><!--[--><!--]--><!--]--></a></div><div class="vp-meta-item git-info"><div class="vp-meta-item last-updated"><span class="meta-item-label">Last Updated: </span><time class="meta-item-info" datetime="2026-10-06T14:13:20.000Z" data-allow-mismatch>10/6/26, 2:13 PM</time></div><div class="vp-meta-item contributors"><span class="meta-item-label">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: marko.lahma@gmail.com">Marko Lahma</span><!--[-->, <!--]--><!--]--><!--[--><span class="contributor" title="email: noreply@anthropic.com">Claude Opus 5.5</span><!----><!--]--><!--]--></span></div></div></footer><!----><!--[--><!--]--></main><!--]--></div><!--[--><!----><!--]--><!--]--></div>
<script type="module" src="/assets/app-m4TtRREs.js" defer></script>
</body>
</html>