JSPM

  • Created
  • Published
  • Downloads 2324
  • Score
    100M100P100Q121595F
  • License MIT

Task scheduler for AdonisJS

Package Exports

  • adonisjs-scheduler
  • adonisjs-scheduler/commands
  • adonisjs-scheduler/scheduler_provider
  • adonisjs-scheduler/services/main

Readme

AdonisJS Scheduler

Task scheduler for AdonisJS v6

npm License: MIT Typescript

Scheduler code example

Getting Started

This package is available in the npm registry.

pnpm install adonisjs-scheduler

Next, configure the package by running the following command.

node ace configure adonisjs-scheduler

Running The Scheduler

node ace scheduler:run
# or
node ace scheduler:work

# automatically restart the scheduler when files are modified during development mode
node ace scheduler:run --watch

Defining Schedules

// start/scheduler.ts

import scheduler from 'adonisjs-scheduler/services/main'

import PurgeUsers from '../commands/purge_users'

scheduler.command('inspire').everyFiveSeconds()
scheduler.command(PurgeUsers, ['30 days']).everyFiveSeconds().withoutOverlapping()

scheduler.withoutOverlapping(
  () => {
    scheduler.command('inspire').everySecond()
    scheduler.command(PurgeUsers, ['30 days']).everyFiveSeconds()
  },
  { expiresAt: 30_000 }
)

scheduler
  .call(() => {
    console.log('Pruge DB!')
  })
  .weekly()

Schedule Frequency Options

Method Description
.cron('* * * * *'); Run the task on a custom cron schedule
.everyMinute(); Run the task every minute
.everyTwoMinutes(); Run the task every two minutes
.everyThreeMinutes(); Run the task every three minutes
.everyFourMinutes(); Run the task every four minutes
.everyFiveMinutes(); Run the task every five minutes
.everyTenMinutes(); Run the task every ten minutes
.everyFifteenMinutes(); Run the task every fifteen minutes
.everyThirtyMinutes(); Run the task every thirty minutes
.hourly(); Run the task every hour
.everyTwoHours(); Run the task every two hours
.everyThreeHours(); Run the task every three hours
.everyFourHours(); Run the task every four hours
.everyFiveHours(); Run the task every five hours
.everySixHours(); Run the task every six hours
.daily(); Run the task every day at midnight
.weekly(); Run the task every Sunday at 00:00
.monthly(); Run the task on the first day of every month at 00:00
.quarterly(); Run the task on the first day of every quarter at 00:00
.yearly(); Run the task on the first day of every year at 00:00
.immediate(); Run the task on startup
.withoutOverlapping(); Run the task without overlapping
.withoutOverlapping(); Run the task without overlapping
.timezone('America/New_York'); Set the timezone for the task.