{"_id":"@codenameryuu/adonis-scheduler","_rev":"6-df64d156b4c7bdc17d474a55835f7a11","name":"@codenameryuu/adonis-scheduler","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.0":{"name":"@codenameryuu/adonis-scheduler","version":"1.0.0","keywords":["adonis","scheduler"],"author":{"name":"codenameryuu"},"license":"MIT","_id":"@codenameryuu/adonis-scheduler@1.0.0","maintainers":[{"name":"codenameryuu","email":"leaderballon@gmail.com"}],"homepage":"https://github.com/codenameryuu/adonis-scheduler#readme","bugs":{"url":"https://github.com/codenameryuu/adonis-scheduler/issues"},"dist":{"shasum":"fc55d527a851314901855976dcd9e431eeb3591a","tarball":"https://registry.npmjs.org/@codenameryuu/adonis-scheduler/-/adonis-scheduler-1.0.0.tgz","fileCount":35,"integrity":"sha512-QAzXKVPx3iW/o0u6Yb9fj9Yi0WArG6BSzQeLhF8Cqjx4b1cuPB4KQ91FY0CvcFB+UJKNod1igfZ513TFQQ+7lQ==","signatures":[{"sig":"MEUCIACMlfMkSqH0MN/8+8D+Z1kYgztHVyRANhPpqYMNHFTJAiEAqd6+BNQ2M8m1b7kD3NQ0IQ7oqba4ktTjMAbgeFiAEZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53523},"main":"build/providers/scheduler_provider.js","type":"module","types":"./build/providers/scheduler_provider.d.ts","engines":{"node":">=24.0.0"},"exports":{".":"./build/index.js","./commands":"./build/commands/main.js","./services/main":"./build/services/main.js","./scheduler_provider":"./build/providers/scheduler_provider.js"},"gitHead":"852f52e8ad455b978b025f5c8249f6d0e3b7bee6","scripts":{"test":"node --enable-source-maps --import=ts-node-maintained/register/esm bin/test.ts","build":"npm run clean && npm run build-only && npm run copyfiles","clean":"rimraf build","copyfiles":"copyfiles \"stubs/**/*.stub\" build","build-only":"tsc && npm run index:commands","index:commands":"adonis-kit index build/commands","prepublishOnly":"npm run build"},"_npmUser":{"name":"codenameryuu","email":"leaderballon@gmail.com"},"prettier":"@adonisjs/prettier-config","repository":{"url":"git+https://github.com/codenameryuu/adonis-scheduler.git","type":"git"},"_npmVersion":"11.6.2","description":"A task scheduler for AdonisJS","directories":{},"_nodeVersion":"24.12.0","dependencies":{"luxon":"^3.5.0","chokidar":"^4.0.2","node-cron":"^3.0.2","async-lock":"^1.4.1","cron-parser":"^5.0.4","string-width":"^7.2.0"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^3.0.2","prettier":"^2.7.1","@swc/core":"^1.3.102","copyfiles":"^2.4.1","typescript":"^5.3.3","@types/node":"^22.10.1","@japa/assert":"^4.0.0","@japa/runner":"^3.1.4","@types/luxon":"^3.4.2","@adonisjs/core":"^6.2.0","@types/node-cron":"^3.0.7","@types/async-lock":"^1.4.2","@adonisjs/tsconfig":"^1.2.1","ts-node-maintained":"^10.9.4","@adonisjs/prettier-config":"^1.2.1"},"peerDependencies":{"@adonisjs/core":"^6.2.0 || ^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/adonis-scheduler_1.0.0_1782638396030_0.7384105969528969","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@codenameryuu/adonis-scheduler","version":"1.0.1","keywords":["adonis","scheduler"],"author":{"name":"codenameryuu"},"license":"MIT","_id":"@codenameryuu/adonis-scheduler@1.0.1","maintainers":[{"name":"codenameryuu","email":"leaderballon@gmail.com"}],"homepage":"https://github.com/codenameryuu/adonis-scheduler#readme","bugs":{"url":"https://github.com/codenameryuu/adonis-scheduler/issues"},"dist":{"shasum":"82070550fc25a6a354841b0e602b7097356e8d8d","tarball":"https://registry.npmjs.org/@codenameryuu/adonis-scheduler/-/adonis-scheduler-1.0.1.tgz","fileCount":35,"integrity":"sha512-jmjFmlADGrmpS1LmOmGaOIVQgzC1WqMkIFnj/6XEH8hU0k1RmE4NEPc8b0fjSHaSpwcjIkrpjp1kPlTyS5n6Nw==","signatures":[{"sig":"MEUCIQDDdsfMRmrKCzzykz9pucZI2GmY0JCk/ATpPg6w+ILaRwIgFPWmxYJq41ItajoQ/1VeE4E64rpe9N6PeGsJ5M3uuCw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53557},"main":"build/providers/scheduler_provider.js","type":"module","types":"./build/providers/scheduler_provider.d.ts","engines":{"node":">=24.0.0"},"exports":{".":"./build/index.js","./commands":"./build/commands/main.js","./services/main":"./build/services/main.js","./scheduler_provider":"./build/providers/scheduler_provider.js"},"gitHead":"852f52e8ad455b978b025f5c8249f6d0e3b7bee6","scripts":{"test":"node --enable-source-maps --import=ts-node-maintained/register/esm bin/test.ts","build":"npm run clean && npm run build-only && npm run copyfiles","clean":"rimraf build","copyfiles":"copyfiles \"stubs/**/*.stub\" build","build-only":"tsc && npm run index:commands","index:commands":"adonis-kit index build/commands","prepublishOnly":"npm run build"},"_npmUser":{"name":"codenameryuu","email":"leaderballon@gmail.com"},"prettier":"@adonisjs/prettier-config","repository":{"url":"git+https://github.com/codenameryuu/adonis-scheduler.git","type":"git"},"_npmVersion":"11.6.2","description":"A task scheduler for AdonisJS","directories":{},"_nodeVersion":"24.12.0","dependencies":{"luxon":"^3.5.0","chokidar":"^4.0.2","node-cron":"^3.0.2","async-lock":"^1.4.1","cron-parser":"^5.0.4","string-width":"^7.2.0"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^3.0.2","prettier":"^2.7.1","@swc/core":"^1.3.102","copyfiles":"^2.4.1","typescript":"^5.3.3","@types/node":"^22.10.1","@japa/assert":"^4.0.0","@japa/runner":"^3.1.4","@types/luxon":"^3.4.2","@adonisjs/core":"^7.0.0","@types/node-cron":"^3.0.7","@types/async-lock":"^1.4.2","@adonisjs/tsconfig":"^1.2.1","ts-node-maintained":"^10.9.4","@adonisjs/prettier-config":"^1.2.1"},"peerDependencies":{"@adonisjs/core":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/adonis-scheduler_1.0.1_1782639253584_0.3903008343243084","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@codenameryuu/adonis-scheduler","version":"1.0.3","keywords":["adonis","scheduler"],"author":{"name":"codenameryuu"},"license":"MIT","_id":"@codenameryuu/adonis-scheduler@1.0.3","maintainers":[{"name":"codenameryuu","email":"leaderballon@gmail.com"}],"homepage":"https://github.com/codenameryuu/adonis-scheduler#readme","bugs":{"url":"https://github.com/codenameryuu/adonis-scheduler/issues"},"dist":{"shasum":"ca932b5117c0f336ed1ba946f448f10fd341d928","tarball":"https://registry.npmjs.org/@codenameryuu/adonis-scheduler/-/adonis-scheduler-1.0.3.tgz","fileCount":35,"integrity":"sha512-B/ZXML3+w7q5YqDxPoaRpKEom0Q3efXdHQQUe5lqXxNytY/z+4i/pk6yNq/cJKYXaPfG+P/IXLUpDvqnQHAp7A==","signatures":[{"sig":"MEYCIQCAHghGS37efIHvET8kSH054qcBaZRcPamvt3Knx8pl/QIhALxUZXn21kG69odus6wC36kQu2Z3HLPNBR3s3Pt0CFXd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53939},"main":"build/providers/scheduler_provider.js","type":"module","types":"./build/providers/scheduler_provider.d.ts","engines":{"node":">=24.0.0"},"exports":{".":"./build/index.js","./commands":"./build/commands/main.js","./services/main":"./build/services/main.js","./scheduler_provider":"./build/providers/scheduler_provider.js"},"gitHead":"b816e01858feb41886c2004f0a5a54b1d755d229","scripts":{"test":"node --enable-source-maps --import=ts-node-maintained/register/esm bin/test.ts","build":"npm run clean && npm run build-only && npm run copyfiles","clean":"rimraf build","copyfiles":"copyfiles \"stubs/**/*.stub\" build","build-only":"tsc && npm run index:commands","index:commands":"adonis-kit index build/commands","prepublishOnly":"npm run build"},"_npmUser":{"name":"codenameryuu","email":"leaderballon@gmail.com"},"prettier":"@adonisjs/prettier-config","repository":{"url":"git+https://github.com/codenameryuu/adonis-scheduler.git","type":"git"},"_npmVersion":"11.6.2","description":"A task scheduler for AdonisJS","directories":{},"_nodeVersion":"24.12.0","dependencies":{"luxon":"^3.5.0","chokidar":"^5.0.0","node-cron":"^4.5.0","async-lock":"^1.4.1","cron-parser":"^5.0.4","string-width":"^8.2.1"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","prettier":"^3.9.1","@swc/core":"^1.3.102","copyfiles":"^2.4.1","typescript":"^6.0.3","@types/node":"^26.0.1","@japa/assert":"^4.0.0","@japa/runner":"^5.3.0","@types/luxon":"^3.4.2","@adonisjs/core":"^7.0.0","@types/async-lock":"^1.4.2","@adonisjs/tsconfig":"^2.0.0","ts-node-maintained":"^10.9.4","@adonisjs/prettier-config":"^1.2.1"},"peerDependencies":{"@adonisjs/core":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/adonis-scheduler_1.0.3_1782704073847_0.6412460653181311","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@codenameryuu/adonis-scheduler","version":"1.0.4","keywords":["adonis","scheduler"],"author":{"name":"codenameryuu"},"license":"MIT","_id":"@codenameryuu/adonis-scheduler@1.0.4","maintainers":[{"name":"codenameryuu","email":"leaderballon@gmail.com"}],"homepage":"https://github.com/codenameryuu/adonis-scheduler#readme","bugs":{"url":"https://github.com/codenameryuu/adonis-scheduler/issues"},"dist":{"shasum":"65069140e9512bda37fa525141690ce170297acf","tarball":"https://registry.npmjs.org/@codenameryuu/adonis-scheduler/-/adonis-scheduler-1.0.4.tgz","fileCount":35,"integrity":"sha512-nE4Q42r+vQqzPPYiXkr5NPVAxBP0df0sAK6EmUwexWSQQCczT6DQQRaiEgHrV9UsvSMr11xj4IXTP3elB43nHA==","signatures":[{"sig":"MEUCIQDcsdUdsaLMFC6b/0kBFm2kW2D9UuX808nLjZK2nVV67gIgFcicpfpdHy9R1yhOsZIPxQSmhL1bWs2rXWq82SxOIWY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53945},"main":"build/providers/scheduler_provider.js","type":"module","types":"./build/providers/scheduler_provider.d.ts","engines":{"node":">=24.0.0"},"exports":{".":"./build/index.js","./commands":"./build/commands/main.js","./services/main":"./build/services/main.js","./scheduler_provider":"./build/providers/scheduler_provider.js"},"gitHead":"b816e01858feb41886c2004f0a5a54b1d755d229","scripts":{"test":"node --enable-source-maps --import=ts-node-maintained/register/esm bin/test.ts","build":"npm run clean && npm run build-only && npm run copyfiles","clean":"rimraf build","copyfiles":"copyfiles \"stubs/**/*.stub\" build","build-only":"tsc && npm run index:commands","index:commands":"adonis-kit index build/commands","prepublishOnly":"npm run build"},"_npmUser":{"name":"codenameryuu","email":"leaderballon@gmail.com"},"prettier":"@adonisjs/prettier-config","repository":{"url":"git+https://github.com/codenameryuu/adonis-scheduler.git","type":"git"},"_npmVersion":"11.6.2","description":"A task scheduler for AdonisJS","directories":{},"_nodeVersion":"24.12.0","dependencies":{"luxon":"^3.5.0","chokidar":"^5.0.0","node-cron":"^4.5.0","async-lock":"^1.4.1","cron-parser":"^5.0.4","string-width":"^8.2.1"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","prettier":"^3.9.1","@swc/core":"^1.3.102","copyfiles":"^2.4.1","typescript":"^6.0.3","@types/node":"^26.0.1","@japa/assert":"^4.0.0","@japa/runner":"^5.3.0","@types/luxon":"^3.4.2","@adonisjs/core":"^7.0.0","@types/async-lock":"^1.4.2","@adonisjs/tsconfig":"^2.0.0","ts-node-maintained":"^10.9.4","@adonisjs/prettier-config":"^1.2.1"},"peerDependencies":{"@adonisjs/core":"^7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/adonis-scheduler_1.0.4_1782704260384_0.6100892647989551","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@codenameryuu/adonis-scheduler","version":"1.0.5","keywords":["adonis","scheduler"],"author":{"name":"codenameryuu"},"license":"MIT","_id":"@codenameryuu/adonis-scheduler@1.0.5","maintainers":[{"name":"codenameryuu","email":"leaderballon@gmail.com"}],"homepage":"https://github.com/codenameryuu/adonis-scheduler#readme","bugs":{"url":"https://github.com/codenameryuu/adonis-scheduler/issues"},"dist":{"shasum":"8ec661d715dac44c37a2bd56c99afc879796e122","tarball":"https://registry.npmjs.org/@codenameryuu/adonis-scheduler/-/adonis-scheduler-1.0.5.tgz","fileCount":35,"integrity":"sha512-q9L0+IEmVHQ1myu5/GSk1mf3J68KAFirvgwfcbUdePH6a+insawo5x45+3RKLLyewLq42S1x6lKdTrCS8cPFDg==","signatures":[{"sig":"MEQCICCwd7NNaqWuuVVN3c3lp4pi8L2s7bTWY47yY+dHQiqLAiBZYsUeQ+ig/FLRwjHIVGuC3rHoyM6oMiZqThFNny4QwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53946},"main":"build/providers/scheduler_provider.js","type":"module","types":"./build/providers/scheduler_provider.d.ts","engines":{"node":">=24.0.0"},"exports":{".":"./build/index.js","./commands":"./build/commands/main.js","./services/main":"./build/services/main.js","./scheduler_provider":"./build/providers/scheduler_provider.js"},"gitHead":"7ddf6a8ddcec0deedcf6059f8a53a5631cd1bd44","scripts":{"test":"node --enable-source-maps --import=ts-node-maintained/register/esm bin/test.ts","build":"npm run clean && npm run build-only && npm run copyfiles","clean":"rimraf build","copyfiles":"copyfiles \"stubs/**/*.stub\" build","build-only":"tsc && npm run index:commands","index:commands":"adonis-kit index build/commands","prepublishOnly":"npm run build"},"_npmUser":{"name":"codenameryuu","email":"leaderballon@gmail.com"},"prettier":"@adonisjs/prettier-config","repository":{"url":"git+https://github.com/codenameryuu/adonis-scheduler.git","type":"git"},"_npmVersion":"11.6.2","description":"A task scheduler for AdonisJS","directories":{},"_nodeVersion":"24.12.0","dependencies":{"luxon":"^3.7.2","chokidar":"^5.0.0","node-cron":"^4.5.0","async-lock":"^1.4.1","cron-parser":"^5.6.1","string-width":"^8.2.1"},"publishConfig":{"tag":"latest","access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.3","prettier":"^3.9.1","@swc/core":"^1.15.43","copyfiles":"^2.4.1","typescript":"^6.0.3","@types/node":"^26.0.1","@japa/assert":"^4.2.0","@japa/runner":"^5.3.0","@types/luxon":"^3.7.2","@adonisjs/core":"^7.3.4","@types/async-lock":"^1.4.2","@adonisjs/tsconfig":"^2.0.0","ts-node-maintained":"^10.9.6","@adonisjs/prettier-config":"^1.5.0"},"peerDependencies":{"@adonisjs/core":">=7.0.0"},"_npmOperationalInternal":{"tmp":"tmp/adonis-scheduler_1.0.5_1782704864763_0.6970375220619502","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@codenameryuu/adonis-scheduler","description":"A task scheduler for AdonisJS","version":"1.0.6","author":{"name":"codenameryuu"},"license":"MIT","homepage":"https://github.com/codenameryuu/adonis-scheduler#readme","repository":{"type":"git","url":"git+https://github.com/codenameryuu/adonis-scheduler.git"},"engines":{"node":">=24.0.0"},"type":"module","exports":{".":"./build/index.js","./services/main":"./build/services/main.js","./scheduler_provider":"./build/providers/scheduler_provider.js","./commands":"./build/commands/main.js"},"scripts":{"build":"npm run clean && npm run build-only && npm run copyfiles","copyfiles":"copyfiles \"stubs/**/*.stub\" build","build-only":"tsc && npm run index:commands","clean":"rimraf build","prepublishOnly":"npm run build","index:commands":"adonis-kit index build/commands","test":"node --enable-source-maps --import=ts-node-maintained/register/esm bin/test.ts"},"devDependencies":{"@adonisjs/core":"^7.3.4","@adonisjs/prettier-config":"^1.5.0","@adonisjs/tsconfig":"^2.0.0","@japa/assert":"^4.2.0","@japa/runner":"^5.3.0","@swc/core":"^1.15.43","@types/async-lock":"^1.4.2","@types/luxon":"^3.7.2","@types/node":"^26.0.1","copyfiles":"^2.4.1","prettier":"^3.9.1","rimraf":"^6.1.3","ts-node-maintained":"^10.9.6","typescript":"^6.0.3"},"dependencies":{"async-lock":"^1.4.1","chokidar":"^5.0.0","cron-parser":"^5.6.1","luxon":"^3.7.2","node-cron":"^4.5.0","string-width":"^8.2.1"},"peerDependencies":{"@adonisjs/core":"^7.0.0"},"keywords":["adonis","scheduler"],"prettier":"@adonisjs/prettier-config","publishConfig":{"tag":"latest","access":"public"},"main":"build/providers/scheduler_provider.js","gitHead":"8f53a0d21cdeb0957a2b1719c2388f8ea81cfecf","types":"./build/providers/scheduler_provider.d.ts","_id":"@codenameryuu/adonis-scheduler@1.0.6","bugs":{"url":"https://github.com/codenameryuu/adonis-scheduler/issues"},"_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-V9g6MD62rpBMQLnxjV0RbsF/emhlv6pke7xNIvF2TukcpwSmRsrsRXZbw6y6gKt31Mh5xTyYZKPdflJ+mFuKAQ==","shasum":"c66e59dca41978e6be388c4b1ae3887762de8376","tarball":"https://registry.npmjs.org/@codenameryuu/adonis-scheduler/-/adonis-scheduler-1.0.6.tgz","fileCount":35,"unpackedSize":53945,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC4dQxl7qSDURmQqH/gv1grR1AY+hTXMKrD+oDpCmewfQIgAUuSVdNFN+eHr5T5dB0KsrWCNA26tuuJqFOS00WwljQ="}]},"_npmUser":{"name":"codenameryuu","email":"leaderballon@gmail.com"},"directories":{},"maintainers":[{"name":"codenameryuu","email":"leaderballon@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/adonis-scheduler_1.0.6_1782704998874_0.4623306105891649"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-28T09:19:55.918Z","modified":"2026-06-29T03:49:59.096Z","1.0.0":"2026-06-28T09:19:56.158Z","1.0.1":"2026-06-28T09:34:13.740Z","1.0.3":"2026-06-29T03:34:33.987Z","1.0.4":"2026-06-29T03:37:40.513Z","1.0.5":"2026-06-29T03:47:44.912Z","1.0.6":"2026-06-29T03:49:59.015Z"},"bugs":{"url":"https://github.com/codenameryuu/adonis-scheduler/issues"},"author":{"name":"codenameryuu"},"license":"MIT","homepage":"https://github.com/codenameryuu/adonis-scheduler#readme","keywords":["adonis","scheduler"],"repository":{"type":"git","url":"git+https://github.com/codenameryuu/adonis-scheduler.git"},"description":"A task scheduler for AdonisJS","maintainers":[{"name":"codenameryuu","email":"leaderballon@gmail.com"}],"readme":"# @codenameryuu/adonis-scheduler\r\n\r\nThis addon adds the functionality to schedule tasks in Adonis JS 7.\r\n\r\n## Requirement\r\n\r\n* Adonis Js 7\r\n\r\n## Installation\r\n\r\n* Install the package \r\n\r\n```bash\r\nyarn add @codenameryuu/adonis-scheduler\r\n```\r\n\r\n* Add the package to the `adonisrc.ts` file\r\n\r\n```bash\r\nnode ace configure @codenameryuu/adonis-scheduler\r\n```\r\n\r\n## Running The Scheduler\r\n\r\n```sh\r\nnode ace scheduler:run\r\n# or\r\nnode ace scheduler:work\r\n\r\n# automatically restart the scheduler when files are modified during development mode\r\nnode ace scheduler:run --watch\r\n\r\nnode ace scheduler:run --tag <tag_name> # Run all schedules with the specified tag\r\n```\r\n\r\n## Defining Schedules\r\n\r\n```ts\r\n// start/scheduler.ts\r\n\r\nimport scheduler from '@codenameryuu/adonis-scheduler/services/main'\r\n\r\nimport PurgeUsers from '../commands/purge_users'\r\n\r\nscheduler.command('inspire').everyFiveSeconds()\r\nscheduler.command(PurgeUsers, ['30 days']).everyFiveSeconds().withoutOverlapping()\r\n\r\nscheduler.withoutOverlapping(\r\n  () => {\r\n    scheduler.command('inspire').everySecond()\r\n    scheduler.command(PurgeUsers, ['30 days']).everyFiveSeconds()\r\n  },\r\n  { expiresAt: 30_000 }\r\n)\r\n\r\nscheduler.withTag(\r\n  () => {\r\n    scheduler.command('inspire').everySecond()\r\n  },\r\n  'my-tag'\r\n)\r\n\r\nscheduler\r\n  .call(() => {\r\n    console.log('Pruge DB!')\r\n  })\r\n  .weekly()\r\n\r\nscheduler\r\n  .call(() => {\r\n    console.log('Pruge DB!')\r\n  })\r\n  .tag('my-tag')\r\n  .weekly()\r\n```\r\n\r\nor define schedule directly on command\r\n\r\n```ts\r\nimport { BaseCommand, args } from '@adonisjs/core/ace'\r\nimport { schedule } from '@codenameryuu/adonis-scheduler'\r\n\r\n@schedule(\"* * * * *\", [\"30 days\"])\r\n@schedule((s) => s.everyFiveSeconds().immediate(), [\"7 days\"])\r\n@schedule((s) => s.everyMinute(), [\"42 days\"])\r\nexport default class PurgeUsers extends BaseCommand {\r\n  static commandName = 'purge:users'\r\n  static description = ''\r\n\r\n  static options: CommandOptions = {}\r\n\r\n  @args.string()\r\n  declare olderThan: string\r\n\r\n  async run() {\r\n    //\r\n  }\r\n}\r\n```\r\n\r\n## Schedule Frequency Options\r\n\r\n| Method                           | Description                                             |\r\n| -------------------------------- | ------------------------------------------------------- |\r\n| `.cron('* * * * *');` | Run the task on a custom cron schedule                  |\r\n| `.everyMinute();` | Run the task every minute                               |\r\n| `.everyTwoMinutes();` | Run the task every two minutes                          |\r\n| `.everyThreeMinutes();` | Run the task every three minutes                        |\r\n| `.everyFourMinutes();` | Run the task every four minutes                         |\r\n| `.everyFiveMinutes();` | Run the task every five minutes                         |\r\n| `.everyTenMinutes();` | Run the task every ten minutes                          |\r\n| `.everyFifteenMinutes();` | Run the task every fifteen minutes                      |\r\n| `.everyThirtyMinutes();` | Run the task every thirty minutes                       |\r\n| `.hourly();` | Run the task every hour                                 |\r\n| `.hourlyAt(17);` | Run the task every hour at 17 minutes past the hour.    |\r\n| `.everyTwoHours();` | Run the task every two hours                            |\r\n| `.everyThreeHours();` | Run the task every three hours                          |\r\n| `.everyFourHours();` | Run the task every four hours                           |\r\n| `.everyFiveHours();` | Run the task every five hours                           |\r\n| `.everySixHours();` | Run the task every six hours                            |\r\n| `.daily();` | Run the task every day at midnight                      |\r\n| `.dailyAt('13:00');` | Run the task every day at 13:00.                        |\r\n| `.twiceDaily(1, 13);` | Run the task daily at 1:00 & 13:00.                     |\r\n| `.twiceDailyAt(1, 13, 15);` | Run the task daily at 1:15 & 13:15.                     |\r\n| `.weekly();` | Run the task every Sunday at 00:00                      |\r\n| `.weeklyOn(1, '8:00');` | Run the task every week on Monday at 8:00.              |\r\n| `.monthly();` | Run the task on the first day of every month at 00:00   |\r\n| `.monthlyOn(4, '15:00');` | Run the task every month on the 4th at 15:00.           |\r\n| `.twiceMonthly(1, 16, '13:00');` | Run the task monthly on the 1st and 16th at 13:00.      |\r\n| `.lastDayOfMonth('15:00');` | Run the task on the last day of the month at 15:00.     |\r\n| `.quarterly();` | Run the task on the first day of every quarter at 00:00.|\r\n| `.quarterlyOn(4, '14:00');` | Run the task every quarter on the 4th at 14:00.         |\r\n| `.yearly();` | Run the task on the first day of every year at 00:00.   |\r\n| `.yearlyOn(6, 1, '17:00');` | Run the task every year on June 1st at 17:00.           |\r\n| `.timezone('America/New_York');` | Set the timezone for the task.                          |\r\n| `.immediate();` | Run the task on startup                                 |\r\n| `.withoutOverlapping();` | Run the task without overlapping                        |\r\n\r\n## Alternative Ways to Run the Scheduler\r\n\r\nBesides using `node ace scheduler:run` , you can also manually initialize and control the scheduler worker in your code:\r\n\r\n```ts\r\nimport { Worker } from '@codenameryuu/adonis-scheduler'\r\nimport app from '@adonisjs/core/services/app'\r\n\r\nconst worker = new Worker(app)\r\n\r\napp.terminating(async () => {\r\n  await worker.stop()\r\n})\r\n\r\nawait worker.start()\r\n```\r\n\r\nNote: make sure to modify `adonisrc.ts` and include the environment where the worker is running.\r\n\r\n```ts\r\nimport { defineConfig } from '@adonisjs/core/app'\r\n\r\nexport default defineConfig({\r\n providers: [\r\n   {\r\n      file: () => import('@codenameryuu/adonis-scheduler/scheduler_provider'),\r\n      environment: ['console', 'web'], // <---\r\n   },\r\n\r\n   // or enable for all environments\r\n   () => import('@codenameryuu/adonis-scheduler/scheduler_provider'),\r\n})\r\n```\r\n","readmeFilename":"README.md"}