[{"data":1,"prerenderedAt":1855},["ShallowReactive",2],{"navigation":3,"docs-path-index":340,"-docs-modules-scheduler-jobs":446,"-docs-modules-scheduler-jobs-surround":1850},[4],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":64},"Docs","i-lucide-book-marked","\u002Fdocs","docs",[10,30,65,293,318],{"title":11,"path":12,"stem":13,"children":14,"icon":29},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[15,17,21,25],{"title":16,"path":12,"stem":13},"Introduction",{"title":18,"path":19,"stem":20},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":22,"path":23,"stem":24},"Examples","\u002Fdocs\u002Fgetting-started\u002Fexamples","docs\u002F1.getting-started\u002F3.examples",{"title":26,"path":27,"stem":28},"Project Generator","\u002Fdocs\u002Fgetting-started\u002Fproject-generator","docs\u002F1.getting-started\u002F4.project-generator","i-lucide-rocket",{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":64},"Core features","i-lucide-square-function","\u002Fdocs\u002Fcore-features","docs\u002F2.core-features",[36,40,44,48,52,56,60],{"title":37,"path":38,"stem":39},"Configuration","\u002Fdocs\u002Fcore-features\u002Fconfiguration","docs\u002F2.core-features\u002F0.configuration",{"title":41,"path":42,"stem":43},"Dependency Injection","\u002Fdocs\u002Fcore-features\u002Fcontainer","docs\u002F2.core-features\u002F1.container",{"title":45,"path":46,"stem":47},"Controllers","\u002Fdocs\u002Fcore-features\u002Fcontrollers","docs\u002F2.core-features\u002F2.controllers",{"title":49,"path":50,"stem":51},"Middlewares","\u002Fdocs\u002Fcore-features\u002Fmiddlewares","docs\u002F2.core-features\u002F3.middlewares",{"title":53,"path":54,"stem":55},"Validation","\u002Fdocs\u002Fcore-features\u002Fvalidation","docs\u002F2.core-features\u002F4.validation",{"title":57,"path":58,"stem":59},"Introspection","\u002Fdocs\u002Fcore-features\u002Fintrospection","docs\u002F2.core-features\u002F5.introspection",{"title":61,"path":62,"stem":63},"Health Checks","\u002Fdocs\u002Fcore-features\u002Fhealth","docs\u002F2.core-features\u002F6.health",false,{"title":66,"icon":67,"defaultOpen":68,"path":69,"stem":70,"children":71,"page":64},"Modules","i-lucide-boxes",true,"\u002Fdocs\u002Fmodules","docs\u002F3.modules",[72,89,100,116,135,154,177,191,206,214,229,240,255,274,282],{"title":73,"icon":64,"defaultOpen":64,"path":74,"stem":75,"children":76,"page":64},"Auth","\u002Fdocs\u002Fmodules\u002Fauth","docs\u002F3.modules\u002F1.auth",[77,81,85],{"title":78,"path":79,"stem":80},"Overview","\u002Fdocs\u002Fmodules\u002Fauth\u002Foverview","docs\u002F3.modules\u002F1.auth\u002F0.overview",{"title":82,"path":83,"stem":84},"Decorators","\u002Fdocs\u002Fmodules\u002Fauth\u002Fdecorators","docs\u002F3.modules\u002F1.auth\u002F1.decorators",{"title":86,"path":87,"stem":88},"API Reference","\u002Fdocs\u002Fmodules\u002Fauth\u002Fapi","docs\u002F3.modules\u002F1.auth\u002F2.api",{"title":90,"icon":64,"defaultOpen":64,"path":91,"stem":92,"children":93,"page":64},"Devtools","\u002Fdocs\u002Fmodules\u002Fdevtools","docs\u002F3.modules\u002F10.devtools",[94,97],{"title":78,"path":95,"stem":96},"\u002Fdocs\u002Fmodules\u002Fdevtools\u002Foverview","docs\u002F3.modules\u002F10.devtools\u002F0.overview",{"title":37,"path":98,"stem":99},"\u002Fdocs\u002Fmodules\u002Fdevtools\u002Fconfiguration","docs\u002F3.modules\u002F10.devtools\u002F1.configuration",{"title":101,"icon":64,"defaultOpen":64,"path":102,"stem":103,"children":104,"page":64},"Telemetry","\u002Fdocs\u002Fmodules\u002Ftelemetry","docs\u002F3.modules\u002F11.telemetry",[105,108,112],{"title":78,"path":106,"stem":107},"\u002Fdocs\u002Fmodules\u002Ftelemetry\u002Foverview","docs\u002F3.modules\u002F11.telemetry\u002F0.overview",{"title":109,"path":110,"stem":111},"API","\u002Fdocs\u002Fmodules\u002Ftelemetry\u002Fapi","docs\u002F3.modules\u002F11.telemetry\u002F1.api",{"title":113,"path":114,"stem":115},"Instrumentation","\u002Fdocs\u002Fmodules\u002Ftelemetry\u002Finstrumentation","docs\u002F3.modules\u002F11.telemetry\u002F2.instrumentation",{"title":117,"icon":64,"defaultOpen":64,"path":118,"stem":119,"children":120,"page":64},"Queue","\u002Fdocs\u002Fmodules\u002Fqueue","docs\u002F3.modules\u002F12.queue",[121,124,128,132],{"title":78,"path":122,"stem":123},"\u002Fdocs\u002Fmodules\u002Fqueue\u002Foverview","docs\u002F3.modules\u002F12.queue\u002F0.overview",{"title":125,"path":126,"stem":127},"Consumers","\u002Fdocs\u002Fmodules\u002Fqueue\u002Fconsumers","docs\u002F3.modules\u002F12.queue\u002F1.consumers",{"title":129,"path":130,"stem":131},"Strategies","\u002Fdocs\u002Fmodules\u002Fqueue\u002Fstrategies","docs\u002F3.modules\u002F12.queue\u002F2.strategies",{"title":109,"path":133,"stem":134},"\u002Fdocs\u002Fmodules\u002Fqueue\u002Fapi","docs\u002F3.modules\u002F12.queue\u002F3.api",{"title":136,"icon":64,"defaultOpen":64,"path":137,"stem":138,"children":139,"page":64},"Scheduler","\u002Fdocs\u002Fmodules\u002Fscheduler","docs\u002F3.modules\u002F13.scheduler",[140,143,147,151],{"title":78,"path":141,"stem":142},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002Foverview","docs\u002F3.modules\u002F13.scheduler\u002F0.overview",{"title":144,"path":145,"stem":146},"Jobs","\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fjobs","docs\u002F3.modules\u002F13.scheduler\u002F1.jobs",{"title":148,"path":149,"stem":150},"Clustering","\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fclustering","docs\u002F3.modules\u002F13.scheduler\u002F2.clustering",{"title":109,"path":152,"stem":153},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fapi","docs\u002F3.modules\u002F13.scheduler\u002F3.api",{"title":155,"icon":64,"defaultOpen":64,"path":156,"stem":157,"children":158,"page":64},"Testing","\u002Fdocs\u002Fmodules\u002Ftesting","docs\u002F3.modules\u002F14.testing",[159,162,166,170,174],{"title":78,"path":160,"stem":161},"\u002Fdocs\u002Fmodules\u002Ftesting\u002Foverview","docs\u002F3.modules\u002F14.testing\u002F0.overview",{"title":163,"path":164,"stem":165},"Requests","\u002Fdocs\u002Fmodules\u002Ftesting\u002Frequests","docs\u002F3.modules\u002F14.testing\u002F1.requests",{"title":167,"path":168,"stem":169},"Dependencies","\u002Fdocs\u002Fmodules\u002Ftesting\u002Fdependencies","docs\u002F3.modules\u002F14.testing\u002F2.dependencies",{"title":171,"path":172,"stem":173},"Extensions","\u002Fdocs\u002Fmodules\u002Ftesting\u002Fextensions","docs\u002F3.modules\u002F14.testing\u002F3.extensions",{"title":109,"path":175,"stem":176},"\u002Fdocs\u002Fmodules\u002Ftesting\u002Fapi","docs\u002F3.modules\u002F14.testing\u002F4.api",{"title":178,"icon":64,"defaultOpen":64,"path":179,"stem":180,"children":181,"page":64},"Client","\u002Fdocs\u002Fmodules\u002Fclient","docs\u002F3.modules\u002F15.client",[182,185,188],{"title":78,"path":183,"stem":184},"\u002Fdocs\u002Fmodules\u002Fclient\u002Foverview","docs\u002F3.modules\u002F15.client\u002F0.overview",{"title":163,"path":186,"stem":187},"\u002Fdocs\u002Fmodules\u002Fclient\u002Frequests","docs\u002F3.modules\u002F15.client\u002F1.requests",{"title":109,"path":189,"stem":190},"\u002Fdocs\u002Fmodules\u002Fclient\u002Fapi","docs\u002F3.modules\u002F15.client\u002F2.api",{"title":192,"icon":64,"defaultOpen":64,"path":193,"stem":194,"children":195,"page":64},"Logger","\u002Fdocs\u002Fmodules\u002Flogger","docs\u002F3.modules\u002F2.logger",[196,199,203],{"title":78,"path":197,"stem":198},"\u002Fdocs\u002Fmodules\u002Flogger\u002Foverview","docs\u002F3.modules\u002F2.logger\u002F0.overview",{"title":200,"path":201,"stem":202},"Drains & Adapters","\u002Fdocs\u002Fmodules\u002Flogger\u002Fdrivers","docs\u002F3.modules\u002F2.logger\u002F1.drivers",{"title":109,"path":204,"stem":205},"\u002Fdocs\u002Fmodules\u002Flogger\u002Fapi","docs\u002F3.modules\u002F2.logger\u002F2.api",{"title":207,"icon":64,"defaultOpen":64,"path":208,"stem":209,"children":210,"page":64},"Serverless","\u002Fdocs\u002Fmodules\u002Fserverless","docs\u002F3.modules\u002F3.serverless",[211],{"title":78,"path":212,"stem":213},"\u002Fdocs\u002Fmodules\u002Fserverless\u002Foverview","docs\u002F3.modules\u002F3.serverless\u002F0.overview",{"title":215,"icon":64,"defaultOpen":64,"path":216,"stem":217,"children":218,"page":64},"Storage","\u002Fdocs\u002Fmodules\u002Fstorage","docs\u002F3.modules\u002F4.storage",[219,222,226],{"title":78,"path":220,"stem":221},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Foverview","docs\u002F3.modules\u002F4.storage\u002F0.overview",{"title":223,"path":224,"stem":225},"Drivers","\u002Fdocs\u002Fmodules\u002Fstorage\u002Fdrivers","docs\u002F3.modules\u002F4.storage\u002F1.drivers",{"title":109,"path":227,"stem":228},"\u002Fdocs\u002Fmodules\u002Fstorage\u002Fapi","docs\u002F3.modules\u002F4.storage\u002F2.api",{"title":230,"icon":64,"defaultOpen":64,"path":231,"stem":232,"children":233,"page":64},"Web Sockets","\u002Fdocs\u002Fmodules\u002Fweb-sockets","docs\u002F3.modules\u002F5.web-sockets",[234,237],{"title":78,"path":235,"stem":236},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Foverview","docs\u002F3.modules\u002F5.web-sockets\u002F0.overview",{"title":109,"path":238,"stem":239},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002Fapi","docs\u002F3.modules\u002F5.web-sockets\u002F1.api",{"title":241,"icon":64,"defaultOpen":64,"path":242,"stem":243,"children":244,"page":64},"Schema","\u002Fdocs\u002Fmodules\u002Fschema","docs\u002F3.modules\u002F6.schema",[245,248,251],{"title":78,"path":246,"stem":247},"\u002Fdocs\u002Fmodules\u002Fschema\u002Foverview","docs\u002F3.modules\u002F6.schema\u002F0.overview",{"title":82,"path":249,"stem":250},"\u002Fdocs\u002Fmodules\u002Fschema\u002Fdecorators","docs\u002F3.modules\u002F6.schema\u002F1.decorators",{"title":252,"path":253,"stem":254},"Scalar","\u002Fdocs\u002Fmodules\u002Fschema\u002Fscalar","docs\u002F3.modules\u002F6.schema\u002F2.scalar",{"title":256,"icon":64,"defaultOpen":64,"path":257,"stem":258,"children":259,"page":64},"Nitro","\u002Fdocs\u002Fmodules\u002Fnitro","docs\u002F3.modules\u002F7.nitro",[260,263,266,270],{"title":78,"path":261,"stem":262},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Foverview","docs\u002F3.modules\u002F7.nitro\u002F0.overview",{"title":215,"path":264,"stem":265},"\u002Fdocs\u002Fmodules\u002Fnitro\u002Fstorage","docs\u002F3.modules\u002F7.nitro\u002F1.storage",{"title":267,"path":268,"stem":269},"File-Based Routes","\u002Fdocs\u002Fmodules\u002Fnitro\u002Ffile-based-routes","docs\u002F3.modules\u002F7.nitro\u002F2.file-based-routes",{"title":271,"path":272,"stem":273},"Middleware","\u002Fdocs\u002Fmodules\u002Fnitro\u002Fmiddleware","docs\u002F3.modules\u002F7.nitro\u002F3.middleware",{"title":275,"icon":64,"defaultOpen":64,"path":276,"stem":277,"children":278,"page":64},"Vite","\u002Fdocs\u002Fmodules\u002Fvite","docs\u002F3.modules\u002F8.vite",[279],{"title":78,"path":280,"stem":281},"\u002Fdocs\u002Fmodules\u002Fvite\u002Foverview","docs\u002F3.modules\u002F8.vite\u002F0.overview",{"title":283,"icon":64,"defaultOpen":64,"path":284,"stem":285,"children":286,"page":64},"Cache","\u002Fdocs\u002Fmodules\u002Fcache","docs\u002F3.modules\u002F9.cache",[287,290],{"title":78,"path":288,"stem":289},"\u002Fdocs\u002Fmodules\u002Fcache\u002Foverview","docs\u002F3.modules\u002F9.cache\u002F0.overview",{"title":109,"path":291,"stem":292},"\u002Fdocs\u002Fmodules\u002Fcache\u002Fapi","docs\u002F3.modules\u002F9.cache\u002F1.api",{"title":294,"icon":295,"path":296,"stem":297,"children":298,"page":64},"Deployment","i-lucide-cloud-upload","\u002Fdocs\u002Fdeployment","docs\u002F4.deployment",[299,302,306,310,314],{"title":78,"path":300,"stem":301},"\u002Fdocs\u002Fdeployment\u002Foverview","docs\u002F4.deployment\u002F0.overview",{"title":303,"path":304,"stem":305},"Vercel","\u002Fdocs\u002Fdeployment\u002Fvercel","docs\u002F4.deployment\u002F1.vercel",{"title":307,"path":308,"stem":309},"AWS Lambda","\u002Fdocs\u002Fdeployment\u002Faws-lambda","docs\u002F4.deployment\u002F2.aws-lambda",{"title":311,"path":312,"stem":313},"Azure Functions","\u002Fdocs\u002Fdeployment\u002Fazure-functions","docs\u002F4.deployment\u002F3.azure-functions",{"title":315,"path":316,"stem":317},"Node.js Server","\u002Fdocs\u002Fdeployment\u002Fnode-server","docs\u002F4.deployment\u002F4.node-server",{"title":319,"icon":320,"path":321,"stem":322,"children":323,"page":64},"Advanced","i-lucide-brain","\u002Fdocs\u002Fadvanced","docs\u002F99.advanced",[324,328,332,336],{"title":325,"path":326,"stem":327},"Custom Decorator","\u002Fdocs\u002Fadvanced\u002Fcustom-decorator","docs\u002F99.advanced\u002F1.custom-decorator",{"title":329,"path":330,"stem":331},"Plugins","\u002Fdocs\u002Fadvanced\u002Fcustom-plugin","docs\u002F99.advanced\u002F2.custom-plugin",{"title":333,"path":334,"stem":335},"Custom CLI Command","\u002Fdocs\u002Fadvanced\u002Fcustom-cli-command","docs\u002F99.advanced\u002F3.custom-cli-command",{"title":337,"path":338,"stem":339},"Writing a Recipe","\u002Fdocs\u002Fadvanced\u002Fwriting-a-recipe","docs\u002F99.advanced\u002F4.writing-a-recipe",[341,343,345,346,347,348,349,351,352,353,354,355,356,357,358,360,362,363,364,365,367,368,369,371,372,373,374,376,377,378,379,380,382,383,384,385,386,388,389,390,391,392,393,395,396,397,398,400,401,402,403,405,406,408,409,410,411,413,414,415,417,418,419,420,422,423,424,425,426,428,429,431,432,433,435,436,437,438,439,440,442,443,444,445],{"path":342},"\u002Fdocs\u002F.navigation",{"path":344},"\u002Fdocs\u002Fgetting-started\u002F.navigation",{"path":12},{"path":19},{"path":23},{"path":27},{"path":350},"\u002Fdocs\u002Fcore-features\u002F.navigation",{"path":38},{"path":42},{"path":46},{"path":50},{"path":54},{"path":58},{"path":62},{"path":359},"\u002Fdocs\u002Fmodules\u002F.navigation",{"path":361},"\u002Fdocs\u002Fmodules\u002Fauth\u002F.navigation",{"path":79},{"path":83},{"path":87},{"path":366},"\u002Fdocs\u002Fmodules\u002Fdevtools\u002F.navigation",{"path":95},{"path":98},{"path":370},"\u002Fdocs\u002Fmodules\u002Ftelemetry\u002F.navigation",{"path":106},{"path":110},{"path":114},{"path":375},"\u002Fdocs\u002Fmodules\u002Fqueue\u002F.navigation",{"path":122},{"path":126},{"path":130},{"path":133},{"path":381},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002F.navigation",{"path":141},{"path":145},{"path":149},{"path":152},{"path":387},"\u002Fdocs\u002Fmodules\u002Ftesting\u002F.navigation",{"path":160},{"path":164},{"path":168},{"path":172},{"path":175},{"path":394},"\u002Fdocs\u002Fmodules\u002Fclient\u002F.navigation",{"path":183},{"path":186},{"path":189},{"path":399},"\u002Fdocs\u002Fmodules\u002Flogger\u002F.navigation",{"path":197},{"path":201},{"path":204},{"path":404},"\u002Fdocs\u002Fmodules\u002Fserverless\u002F.navigation",{"path":212},{"path":407},"\u002Fdocs\u002Fmodules\u002Fstorage\u002F.navigation",{"path":220},{"path":224},{"path":227},{"path":412},"\u002Fdocs\u002Fmodules\u002Fweb-sockets\u002F.navigation",{"path":235},{"path":238},{"path":416},"\u002Fdocs\u002Fmodules\u002Fschema\u002F.navigation",{"path":246},{"path":249},{"path":253},{"path":421},"\u002Fdocs\u002Fmodules\u002Fnitro\u002F.navigation",{"path":261},{"path":264},{"path":268},{"path":272},{"path":427},"\u002Fdocs\u002Fmodules\u002Fvite\u002F.navigation",{"path":280},{"path":430},"\u002Fdocs\u002Fmodules\u002Fcache\u002F.navigation",{"path":288},{"path":291},{"path":434},"\u002Fdocs\u002Fdeployment\u002F.navigation",{"path":300},{"path":304},{"path":308},{"path":312},{"path":316},{"path":441},"\u002Fdocs\u002Fadvanced\u002F.navigation",{"path":326},{"path":330},{"path":334},{"path":338},{"id":447,"title":144,"body":448,"description":1844,"extension":1845,"links":1846,"meta":1847,"navigation":68,"path":145,"seo":1848,"stem":146,"__hash__":1849},"docs\u002Fdocs\u002F3.modules\u002F13.scheduler\u002F1.jobs.md",{"type":449,"value":450,"toc":1836},"minimark",[451,456,473,697,704,708,727,782,798,872,876,883,1161,1165,1168,1454,1581,1587,1591,1598,1751,1765,1769,1775,1820,1823,1832],[452,453,455],"h2",{"id":454},"cron","@Cron",[457,458,459,460,464,465,468,469,472],"p",{},"Runs a method on a cron schedule. Five fields give minute precision, six fields add seconds, and nicknames such as ",[461,462,463],"code",{},"@hourly",", ",[461,466,467],{},"@daily"," or ",[461,470,471],{},"@weekly"," work too.",[474,475,480],"pre",{"className":476,"code":477,"language":478,"meta":479,"style":479},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","@Cron('*\u002F15 * * * *', { name: 'reports.refresh' })\npublic async refresh(): Promise\u003Cvoid> {}\n\n@Cron('*\u002F10 * * * * *', { name: 'metrics.flush', scope: 'instance' })\npublic flush(): void {}\n\n@Cron('@daily', { name: 'sessions.prune', timezone: 'America\u002FNew_York' })\npublic async prune(): Promise\u003Cvoid> {}\n","ts","",[461,481,482,535,557,563,612,628,633,681],{"__ignoreMap":479},[483,484,487,491,495,499,502,506,508,511,514,518,521,524,527,529,532],"span",{"class":485,"line":486},"line",1,[483,488,490],{"class":489},"sMK4o","@",[483,492,494],{"class":493},"s2Zo4","Cron",[483,496,498],{"class":497},"sTEyZ","(",[483,500,501],{"class":489},"'",[483,503,505],{"class":504},"sfazB","*\u002F15 * * * *",[483,507,501],{"class":489},[483,509,510],{"class":489},",",[483,512,513],{"class":489}," {",[483,515,517],{"class":516},"swJcz"," name",[483,519,520],{"class":489},":",[483,522,523],{"class":489}," '",[483,525,526],{"class":504},"reports.refresh",[483,528,501],{"class":489},[483,530,531],{"class":489}," }",[483,533,534],{"class":497},")\n",[483,536,538,541,544,547,551,554],{"class":485,"line":537},2,[483,539,540],{"class":497},"public async ",[483,542,543],{"class":493},"refresh",[483,545,546],{"class":497},"(): ",[483,548,550],{"class":549},"sBMFI","Promise",[483,552,553],{"class":489},"\u003Cvoid>",[483,555,556],{"class":489}," {}\n",[483,558,560],{"class":485,"line":559},3,[483,561,562],{"emptyLinePlaceholder":68},"\n",[483,564,566,568,570,572,574,577,579,581,583,585,587,589,592,594,596,599,601,603,606,608,610],{"class":485,"line":565},4,[483,567,490],{"class":489},[483,569,494],{"class":493},[483,571,498],{"class":497},[483,573,501],{"class":489},[483,575,576],{"class":504},"*\u002F10 * * * * *",[483,578,501],{"class":489},[483,580,510],{"class":489},[483,582,513],{"class":489},[483,584,517],{"class":516},[483,586,520],{"class":489},[483,588,523],{"class":489},[483,590,591],{"class":504},"metrics.flush",[483,593,501],{"class":489},[483,595,510],{"class":489},[483,597,598],{"class":516}," scope",[483,600,520],{"class":489},[483,602,523],{"class":489},[483,604,605],{"class":504},"instance",[483,607,501],{"class":489},[483,609,531],{"class":489},[483,611,534],{"class":497},[483,613,615,618,621,623,626],{"class":485,"line":614},5,[483,616,617],{"class":497},"public ",[483,619,620],{"class":493},"flush",[483,622,546],{"class":497},[483,624,625],{"class":489},"void",[483,627,556],{"class":489},[483,629,631],{"class":485,"line":630},6,[483,632,562],{"emptyLinePlaceholder":68},[483,634,636,638,640,642,644,646,648,650,652,654,656,658,661,663,665,668,670,672,675,677,679],{"class":485,"line":635},7,[483,637,490],{"class":489},[483,639,494],{"class":493},[483,641,498],{"class":497},[483,643,501],{"class":489},[483,645,467],{"class":504},[483,647,501],{"class":489},[483,649,510],{"class":489},[483,651,513],{"class":489},[483,653,517],{"class":516},[483,655,520],{"class":489},[483,657,523],{"class":489},[483,659,660],{"class":504},"sessions.prune",[483,662,501],{"class":489},[483,664,510],{"class":489},[483,666,667],{"class":516}," timezone",[483,669,520],{"class":489},[483,671,523],{"class":489},[483,673,674],{"class":504},"America\u002FNew_York",[483,676,501],{"class":489},[483,678,531],{"class":489},[483,680,534],{"class":497},[483,682,684,686,689,691,693,695],{"class":485,"line":683},8,[483,685,540],{"class":497},[483,687,688],{"class":493},"prune",[483,690,546],{"class":497},[483,692,550],{"class":549},[483,694,553],{"class":489},[483,696,556],{"class":489},[457,698,699,700,703],{},"An invalid expression or an unknown time zone throws a ",[461,701,702],{},"SchedulerError"," when the class is bound, naming the job and the expression, so a typo fails the boot rather than the first tick.",[452,705,707],{"id":706},"every","@Every",[457,709,710,711,464,714,464,717,464,720,468,723,726],{},"Runs a method at a fixed interval, written in milliseconds or as a duration such as ",[461,712,713],{},"'30s'",[461,715,716],{},"'5m'",[461,718,719],{},"'1h'",[461,721,722],{},"'1d'",[461,724,725],{},"'1h30m'",". The shortest interval is one second.",[474,728,730],{"className":476,"code":729,"language":478,"meta":479,"style":479},"@Every('5m', { name: 'feeds.poll' })\npublic async poll(): Promise\u003Cvoid> {}\n",[461,731,732,767],{"__ignoreMap":479},[483,733,734,736,739,741,743,746,748,750,752,754,756,758,761,763,765],{"class":485,"line":486},[483,735,490],{"class":489},[483,737,738],{"class":493},"Every",[483,740,498],{"class":497},[483,742,501],{"class":489},[483,744,745],{"class":504},"5m",[483,747,501],{"class":489},[483,749,510],{"class":489},[483,751,513],{"class":489},[483,753,517],{"class":516},[483,755,520],{"class":489},[483,757,523],{"class":489},[483,759,760],{"class":504},"feeds.poll",[483,762,501],{"class":489},[483,764,531],{"class":489},[483,766,534],{"class":497},[483,768,769,771,774,776,778,780],{"class":485,"line":537},[483,770,540],{"class":497},[483,772,773],{"class":493},"poll",[483,775,546],{"class":497},[483,777,550],{"class":549},[483,779,553],{"class":489},[483,781,556],{"class":489},[457,783,784,785,464,788,464,791,794,795,520],{},"Occurrences are aligned to the Unix epoch: a 5 minute job runs at ",[461,786,787],{},":00",[461,789,790],{},":05",[461,792,793],{},":10"," and so on, not five minutes after the process started. That is what lets every replica agree on which occurrence is due, whenever it booted. Shift the grid with ",[461,796,797],{},"offset",[474,799,801],{"className":476,"code":800,"language":478,"meta":479,"style":479},"\u002F\u002F 00:15, 01:15, 02:15...\n@Every('1h', { name: 'reports.hourly', offset: '15m' })\npublic async hourly(): Promise\u003Cvoid> {}\n",[461,802,803,809,857],{"__ignoreMap":479},[483,804,805],{"class":485,"line":486},[483,806,808],{"class":807},"sHwdD","\u002F\u002F 00:15, 01:15, 02:15...\n",[483,810,811,813,815,817,819,822,824,826,828,830,832,834,837,839,841,844,846,848,851,853,855],{"class":485,"line":537},[483,812,490],{"class":489},[483,814,738],{"class":493},[483,816,498],{"class":497},[483,818,501],{"class":489},[483,820,821],{"class":504},"1h",[483,823,501],{"class":489},[483,825,510],{"class":489},[483,827,513],{"class":489},[483,829,517],{"class":516},[483,831,520],{"class":489},[483,833,523],{"class":489},[483,835,836],{"class":504},"reports.hourly",[483,838,501],{"class":489},[483,840,510],{"class":489},[483,842,843],{"class":516}," offset",[483,845,520],{"class":489},[483,847,523],{"class":489},[483,849,850],{"class":504},"15m",[483,852,501],{"class":489},[483,854,531],{"class":489},[483,856,534],{"class":497},[483,858,859,861,864,866,868,870],{"class":485,"line":559},[483,860,540],{"class":497},[483,862,863],{"class":493},"hourly",[483,865,546],{"class":497},[483,867,550],{"class":549},[483,869,553],{"class":489},[483,871,556],{"class":489},[452,873,875],{"id":874},"options","Options",[457,877,878,879,882],{},"Every option can also be set for all jobs at once through the plugin's ",[461,880,881],{},"defaults",". An option set on the job wins.",[884,885,886,902],"table",{},[887,888,889],"thead",{},[890,891,892,896,899],"tr",{},[893,894,895],"th",{},"Option",[893,897,898],{},"Default",[893,900,901],{},"Description",[903,904,905,921,942,961,978,1001,1025,1040,1060,1074,1088,1102,1129,1144],"tbody",{},[890,906,907,913,918],{},[908,909,910],"td",{},[461,911,912],{},"name",[908,914,915],{},[461,916,917],{},"Class.method",[908,919,920],{},"Stable id of the job. Part of every lock key, so it must not change between deploys. Required for cluster jobs.",[890,922,923,928,933],{},[908,924,925],{},[461,926,927],{},"scope",[908,929,930],{},[461,931,932],{},"'cluster'",[908,934,935,938,939,941],{},[461,936,937],{},"cluster"," runs an occurrence on exactly one replica, ",[461,940,605],{}," on every replica.",[890,943,944,949,954],{},[908,945,946],{},[461,947,948],{},"timezone",[908,950,951],{},[461,952,953],{},"'UTC'",[908,955,956,957,960],{},"IANA time zone a cron expression is read in. ",[461,958,959],{},"@Cron()"," only.",[890,962,963,967,972],{},[908,964,965],{},[461,966,797],{},[908,968,969],{},[461,970,971],{},"0",[908,973,974,975,960],{},"Shift of the epoch-aligned grid. ",[461,976,977],{},"@Every()",[890,979,980,985,990],{},[908,981,982],{},[461,983,984],{},"overlap",[908,986,987],{},[461,988,989],{},"'skip'",[908,991,992,993,996,997,1000],{},"What happens when the previous run is still going. ",[461,994,995],{},"skip"," drops the new occurrence, across the whole cluster for a cluster job. ",[461,998,999],{},"allow"," runs both.",[890,1002,1003,1008,1012],{},[908,1004,1005],{},[461,1006,1007],{},"misfire",[908,1009,1010],{},[461,1011,989],{},[908,1013,1014,1015,1018,1019,1024],{},"What happens to an occurrence that was missed. ",[461,1016,1017],{},"run-once"," runs the latest missed one, never a backlog. See ",[1020,1021,1023],"a",{"href":1022},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fclustering#misfires","Misfires",".",[890,1026,1027,1032,1037],{},[908,1028,1029],{},[461,1030,1031],{},"misfireGrace",[908,1033,1034],{},[461,1035,1036],{},"'1m'",[908,1038,1039],{},"How late a timer may fire and still count as on time.",[890,1041,1042,1047,1050],{},[908,1043,1044],{},[461,1045,1046],{},"timeout",[908,1048,1049],{},"none",[908,1051,1052,1053,1056,1057,1059],{},"Hard limit per run. Aborts ",[461,1054,1055],{},"ctx.signal"," with reason ",[461,1058,1046],{}," and records the run as failed.",[890,1061,1062,1067,1071],{},[908,1063,1064],{},[461,1065,1066],{},"lockTtl",[908,1068,1069],{},[461,1070,713],{},[908,1072,1073],{},"Lifetime of the overlap lock of a cluster run. A heartbeat extends it every third of it.",[890,1075,1076,1081,1085],{},[908,1077,1078],{},[461,1079,1080],{},"jitter",[908,1082,1083],{},[461,1084,971],{},[908,1086,1087],{},"Random delay, up to this long, before claiming an occurrence. Spreads load without changing which occurrence it is.",[890,1089,1090,1095,1099],{},[908,1091,1092],{},[461,1093,1094],{},"retries",[908,1096,1097],{},[461,1098,971],{},[908,1100,1101],{},"How many times a failed run is repeated right away, within the same occurrence and lock.",[890,1103,1104,1109,1114],{},[908,1105,1106],{},[461,1107,1108],{},"target",[908,1110,1111],{},[461,1112,1113],{},"'inline'",[908,1115,1116,1117,1120,1121,1124,1125,1024],{},"Where the work runs. ",[461,1118,1119],{},"{ queue: 'reports' }"," enqueues it on ",[461,1122,1123],{},"@vercube\u002Fqueue"," instead. See ",[1020,1126,1128],{"href":1127},"\u002Fdocs\u002Fmodules\u002Fscheduler\u002Fclustering#queue-targets","Queue targets",[890,1130,1131,1136,1141],{},[908,1132,1133],{},[461,1134,1135],{},"external",[908,1137,1138],{},[461,1139,1140],{},"false",[908,1142,1143],{},"Only external triggers fire the job, never an in-process timer.",[890,1145,1146,1151,1155],{},[908,1147,1148],{},[461,1149,1150],{},"paused",[908,1152,1153],{},[461,1154,1140],{},[908,1156,1157,1158,1024],{},"Registered, but not scheduled until ",[461,1159,1160],{},"resume()",[452,1162,1164],{"id":1163},"the-job-context","The job context",[457,1166,1167],{},"A job method receives one argument, its context. The return value is ignored, and throwing marks the run as failed.",[474,1169,1171],{"className":476,"code":1170,"language":478,"meta":479,"style":479},"@Cron('0 * * * *', { name: 'exports.hourly', timeout: '10m' })\npublic async export(ctx: SchedulerTypes.JobContext): Promise\u003Cvoid> {\n  ctx.logger?.info(`exporting ${ctx.occurrenceId}, attempt ${ctx.attempt}`);\n\n  for await (const page of this.gExports.pages({ until: ctx.scheduledAt })) {\n    ctx.signal.throwIfAborted();\n    await this.gWarehouse.write(page, { idempotencyKey: ctx.occurrenceId });\n  }\n}\n",[461,1172,1173,1221,1262,1320,1324,1382,1402,1443,1448],{"__ignoreMap":479},[483,1174,1175,1177,1179,1181,1183,1186,1188,1190,1192,1194,1196,1198,1201,1203,1205,1208,1210,1212,1215,1217,1219],{"class":485,"line":486},[483,1176,490],{"class":489},[483,1178,494],{"class":493},[483,1180,498],{"class":497},[483,1182,501],{"class":489},[483,1184,1185],{"class":504},"0 * * * *",[483,1187,501],{"class":489},[483,1189,510],{"class":489},[483,1191,513],{"class":489},[483,1193,517],{"class":516},[483,1195,520],{"class":489},[483,1197,523],{"class":489},[483,1199,1200],{"class":504},"exports.hourly",[483,1202,501],{"class":489},[483,1204,510],{"class":489},[483,1206,1207],{"class":516}," timeout",[483,1209,520],{"class":489},[483,1211,523],{"class":489},[483,1213,1214],{"class":504},"10m",[483,1216,501],{"class":489},[483,1218,531],{"class":489},[483,1220,534],{"class":497},[483,1222,1223,1225,1229,1231,1235,1237,1240,1242,1245,1248,1251,1254,1256,1259],{"class":485,"line":537},[483,1224,540],{"class":497},[483,1226,1228],{"class":1227},"spNyl","export",[483,1230,498],{"class":489},[483,1232,1234],{"class":1233},"sHdIc","ctx",[483,1236,520],{"class":489},[483,1238,1239],{"class":549}," SchedulerTypes",[483,1241,1024],{"class":489},[483,1243,1244],{"class":549},"JobContext",[483,1246,1247],{"class":489},"):",[483,1249,1250],{"class":549}," Promise",[483,1252,1253],{"class":489},"\u003C",[483,1255,625],{"class":549},[483,1257,1258],{"class":489},">",[483,1260,1261],{"class":489}," {\n",[483,1263,1264,1267,1269,1272,1275,1278,1280,1283,1286,1289,1291,1293,1296,1299,1302,1304,1306,1308,1311,1314,1317],{"class":485,"line":559},[483,1265,1266],{"class":497},"  ctx",[483,1268,1024],{"class":489},[483,1270,1271],{"class":497},"logger",[483,1273,1274],{"class":489},"?.",[483,1276,1277],{"class":493},"info",[483,1279,498],{"class":516},[483,1281,1282],{"class":489},"`",[483,1284,1285],{"class":504},"exporting ",[483,1287,1288],{"class":489},"${",[483,1290,1234],{"class":497},[483,1292,1024],{"class":489},[483,1294,1295],{"class":497},"occurrenceId",[483,1297,1298],{"class":489},"}",[483,1300,1301],{"class":504},", attempt ",[483,1303,1288],{"class":489},[483,1305,1234],{"class":497},[483,1307,1024],{"class":489},[483,1309,1310],{"class":497},"attempt",[483,1312,1313],{"class":489},"}`",[483,1315,1316],{"class":516},")",[483,1318,1319],{"class":489},";\n",[483,1321,1322],{"class":485,"line":565},[483,1323,562],{"emptyLinePlaceholder":68},[483,1325,1326,1330,1333,1336,1339,1342,1345,1348,1351,1353,1356,1358,1361,1364,1366,1369,1371,1374,1376,1379],{"class":485,"line":614},[483,1327,1329],{"class":1328},"s7zQu","  for",[483,1331,1332],{"class":1328}," await",[483,1334,1335],{"class":516}," (",[483,1337,1338],{"class":1227},"const",[483,1340,1341],{"class":497}," page",[483,1343,1344],{"class":489}," of",[483,1346,1347],{"class":489}," this.",[483,1349,1350],{"class":497},"gExports",[483,1352,1024],{"class":489},[483,1354,1355],{"class":493},"pages",[483,1357,498],{"class":516},[483,1359,1360],{"class":489},"{",[483,1362,1363],{"class":516}," until",[483,1365,520],{"class":489},[483,1367,1368],{"class":497}," ctx",[483,1370,1024],{"class":489},[483,1372,1373],{"class":497},"scheduledAt",[483,1375,531],{"class":489},[483,1377,1378],{"class":516},")) ",[483,1380,1381],{"class":489},"{\n",[483,1383,1384,1387,1389,1392,1394,1397,1400],{"class":485,"line":630},[483,1385,1386],{"class":497},"    ctx",[483,1388,1024],{"class":489},[483,1390,1391],{"class":497},"signal",[483,1393,1024],{"class":489},[483,1395,1396],{"class":493},"throwIfAborted",[483,1398,1399],{"class":516},"()",[483,1401,1319],{"class":489},[483,1403,1404,1407,1409,1412,1414,1417,1419,1422,1424,1426,1429,1431,1433,1435,1437,1439,1441],{"class":485,"line":635},[483,1405,1406],{"class":1328},"    await",[483,1408,1347],{"class":489},[483,1410,1411],{"class":497},"gWarehouse",[483,1413,1024],{"class":489},[483,1415,1416],{"class":493},"write",[483,1418,498],{"class":516},[483,1420,1421],{"class":497},"page",[483,1423,510],{"class":489},[483,1425,513],{"class":489},[483,1427,1428],{"class":516}," idempotencyKey",[483,1430,520],{"class":489},[483,1432,1368],{"class":497},[483,1434,1024],{"class":489},[483,1436,1295],{"class":497},[483,1438,531],{"class":489},[483,1440,1316],{"class":516},[483,1442,1319],{"class":489},[483,1444,1445],{"class":485,"line":683},[483,1446,1447],{"class":489},"  }\n",[483,1449,1451],{"class":485,"line":1450},9,[483,1452,1453],{"class":489},"}\n",[884,1455,1456,1465],{},[887,1457,1458],{},[890,1459,1460,1463],{},[893,1461,1462],{},"Field",[893,1464,901],{},[903,1466,1467,1476,1488,1497,1507,1529,1538,1558,1568],{},[890,1468,1469,1473],{},[908,1470,1471],{},[461,1472,912],{},[908,1474,1475],{},"Name of the job.",[890,1477,1478,1482],{},[908,1479,1480],{},[461,1481,1295],{},[908,1483,1484,1487],{},[461,1485,1486],{},"name@ISO instant",", identical on every replica. Use it as an idempotency key.",[890,1489,1490,1494],{},[908,1491,1492],{},[461,1493,1373],{},[908,1495,1496],{},"When the occurrence was scheduled. Identical on every replica.",[890,1498,1499,1504],{},[908,1500,1501],{},[461,1502,1503],{},"startedAt",[908,1505,1506],{},"When this replica started it.",[890,1508,1509,1514],{},[908,1510,1511],{},[461,1512,1513],{},"trigger",[908,1515,1516,464,1519,464,1521,464,1524,468,1526,1024],{},[461,1517,1518],{},"timer",[461,1520,1007],{},[461,1522,1523],{},"manual",[461,1525,1135],{},[461,1527,1528],{},"queue",[890,1530,1531,1535],{},[908,1532,1533],{},[461,1534,1310],{},[908,1536,1537],{},"Starts at 1, grows with every retry.",[890,1539,1540,1544],{},[908,1541,1542],{},[461,1543,1391],{},[908,1545,1546,1547,1550,1551,1553,1554,1557],{},"Aborted on timeout, on a lost lock or on shutdown. ",[461,1548,1549],{},"signal.reason"," is a ",[461,1552,702],{}," whose ",[461,1555,1556],{},"operation"," says which.",[890,1559,1560,1565],{},[908,1561,1562],{},[461,1563,1564],{},"instanceId",[908,1566,1567],{},"Id of the replica running it.",[890,1569,1570,1574],{},[908,1571,1572],{},[461,1573,1271],{},[908,1575,1576,1577,1580],{},"A logger carrying the job and occurrence, when ",[461,1578,1579],{},"@vercube\u002Flogger"," is bound.",[457,1582,1583,1584,1586],{},"A promise cannot be killed, so an aborted handler that ignores its signal keeps running in the background. The scheduler gives it one second to settle, then records the run and releases its locks. Check ",[461,1585,1055],{}," between steps of long work.",[452,1588,1590],{"id":1589},"jobs-added-at-runtime","Jobs added at runtime",[457,1592,1593,1594,1597],{},"Jobs declared in code cover most needs. For jobs that depend on data, such as one sync per tenant, call ",[461,1595,1596],{},"add()"," on the manager. They live in the process that added them.",[474,1599,1601],{"className":476,"code":1600,"language":478,"meta":479,"style":479},"for (const tenant of await tenants.all()) {\n  scheduler.add({\n    name: `tenant.${tenant.id}.sync`,\n    schedule: { every: '15m' },\n    handler: (ctx) => sync(tenant, ctx.signal),\n  });\n}\n",[461,1602,1603,1633,1647,1680,1703,1738,1747],{"__ignoreMap":479},[483,1604,1605,1608,1610,1612,1615,1618,1620,1623,1625,1628,1631],{"class":485,"line":486},[483,1606,1607],{"class":1328},"for",[483,1609,1335],{"class":497},[483,1611,1338],{"class":1227},[483,1613,1614],{"class":497}," tenant ",[483,1616,1617],{"class":489},"of",[483,1619,1332],{"class":1328},[483,1621,1622],{"class":497}," tenants",[483,1624,1024],{"class":489},[483,1626,1627],{"class":493},"all",[483,1629,1630],{"class":497},"()) ",[483,1632,1381],{"class":489},[483,1634,1635,1638,1640,1643,1645],{"class":485,"line":537},[483,1636,1637],{"class":497},"  scheduler",[483,1639,1024],{"class":489},[483,1641,1642],{"class":493},"add",[483,1644,498],{"class":516},[483,1646,1381],{"class":489},[483,1648,1649,1652,1654,1657,1660,1662,1665,1667,1670,1672,1675,1677],{"class":485,"line":559},[483,1650,1651],{"class":516},"    name",[483,1653,520],{"class":489},[483,1655,1656],{"class":489}," `",[483,1658,1659],{"class":504},"tenant.",[483,1661,1288],{"class":489},[483,1663,1664],{"class":497},"tenant",[483,1666,1024],{"class":489},[483,1668,1669],{"class":497},"id",[483,1671,1298],{"class":489},[483,1673,1674],{"class":504},".sync",[483,1676,1282],{"class":489},[483,1678,1679],{"class":489},",\n",[483,1681,1682,1685,1687,1689,1692,1694,1696,1698,1700],{"class":485,"line":565},[483,1683,1684],{"class":516},"    schedule",[483,1686,520],{"class":489},[483,1688,513],{"class":489},[483,1690,1691],{"class":516}," every",[483,1693,520],{"class":489},[483,1695,523],{"class":489},[483,1697,850],{"class":504},[483,1699,501],{"class":489},[483,1701,1702],{"class":489}," },\n",[483,1704,1705,1708,1710,1712,1714,1716,1719,1722,1724,1726,1728,1730,1732,1734,1736],{"class":485,"line":614},[483,1706,1707],{"class":493},"    handler",[483,1709,520],{"class":489},[483,1711,1335],{"class":489},[483,1713,1234],{"class":1233},[483,1715,1316],{"class":489},[483,1717,1718],{"class":1227}," =>",[483,1720,1721],{"class":493}," sync",[483,1723,498],{"class":516},[483,1725,1664],{"class":497},[483,1727,510],{"class":489},[483,1729,1368],{"class":497},[483,1731,1024],{"class":489},[483,1733,1391],{"class":497},[483,1735,1316],{"class":516},[483,1737,1679],{"class":489},[483,1739,1740,1743,1745],{"class":485,"line":630},[483,1741,1742],{"class":489},"  }",[483,1744,1316],{"class":516},[483,1746,1319],{"class":489},[483,1748,1749],{"class":485,"line":635},[483,1750,1453],{"class":489},[457,1752,1753,1756,1757,1760,1761,1764],{},[461,1754,1755],{},"remove(name)"," takes a job away again, and ",[461,1758,1759],{},"pause(name)"," \u002F ",[461,1762,1763],{},"resume(name)"," stop and restart its timer on this replica only.",[452,1766,1768],{"id":1767},"time-zones-and-daylight-saving-time","Time zones and daylight saving time",[457,1770,1771,1772,1774],{},"Every occurrence is computed as a UTC instant, so replicas in different time zones agree on it. A cron expression is read in the job's ",[461,1773,948],{},", which matters twice a year:",[1776,1777,1778,1793,1802],"ul",{},[1779,1780,1781,1785,1786,464,1789,1792],"li",{},[1782,1783,1784],"strong",{},"Spring forward."," A fixed time that does not exist runs once, when the gap ends. In ",[461,1787,1788],{},"Europe\u002FWarsaw",[461,1790,1791],{},"30 2 * * *"," runs at 03:00 local time on 29 March 2026.",[1779,1794,1795,1798,1799,1801],{},[1782,1796,1797],{},"Fall back."," A fixed time that happens twice runs once, on its first pass. ",[461,1800,1791],{}," runs at the first 02:30 on 25 October 2026.",[1779,1803,1804,1807,1808,464,1811,1814,1815,464,1817,1819],{},[1782,1805,1806],{},"Interval jobs follow the wall clock."," A job with a wildcard, step, range or list in its seconds, minutes or hours (",[461,1809,1810],{},"*\u002F30 * * * *",[461,1812,1813],{},"0 1,2 * * *",") skips the times spring forward removes and runs on both passes through the hour fall back repeats. In ",[461,1816,1788],{},[461,1818,1810],{}," runs at 02:00 and 02:30 twice on 25 October 2026.",[457,1821,1822],{},"This is how Vixie cron behaves.",[457,1824,1825,1826,468,1829,1831],{},"For high-frequency jobs, use ",[461,1827,1828],{},"timezone: 'UTC'",[461,1830,977],{},", which ignore the wall clock entirely.",[1833,1834,1835],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":479,"searchDepth":486,"depth":537,"links":1837},[1838,1839,1840,1841,1842,1843],{"id":454,"depth":537,"text":455},{"id":706,"depth":537,"text":707},{"id":874,"depth":537,"text":875},{"id":1163,"depth":537,"text":1164},{"id":1589,"depth":537,"text":1590},{"id":1767,"depth":537,"text":1768},"Declaring scheduled jobs with @Cron and @Every, their options, the job context, time zones and daylight saving time","md",null,{},{"title":144,"description":1844},"xzlpLZb0F0OftnvcKs4w_KJepBSRv70LwVehylodYY8",[1851,1853],{"title":78,"path":141,"stem":142,"description":1852,"children":-1},"Cron and interval jobs for Vercube that run once per occurrence, however many replicas you scale to",{"title":148,"path":149,"stem":150,"description":1854,"children":-1},"How the scheduler runs each occurrence once across replicas, the stores, Kubernetes, graceful shutdown, external triggers and queue targets",1794396677063]