adonisjs-jobs v0.0.21
Getting Started
This package is available in the npm registry.
pnpm install adonisjs-jobsNext, configure the package by running the following command.
node ace configure adonisjs-jobsCreating Jobs
You can create a new job by running the following command.
node ace jobs:make SendEmailListening for Jobs
First, you need to start the jobs listener, you can spawn multiple listeners to process jobs concurrently.
node ace jobs:listen # default queue from env `REDIS_QUEUE`
node ace jobs:listen --queue=high
node ace jobs:listen --queue=high --queue=medium
node ace jobs:listen --queue=high,medium,low
node ace jobs:listen --queue=high --concurrency=3Dispatching Jobs
Dispatching jobs is as simple as importing the job class and calling
import SendEmail from 'path/to/jobs/send_email.js'
await SendEmail.dispatch({ ... })
await SendEmail.dispatch({ ... }, { // for more job options check https://docs.bullmq.io/
attempts: 3,
delay: 1000,
})Import Aliases (optional)
update your package.json and tsconfig.json to use import aliases
package.json
{
"imports": {
"#jobs/*": "./app/jobs/*.js"
}
}tsconfig.json
{
"compilerOptions": {
"paths": {
"#jobs/*": ["./app/jobs/*.js"]
}
}
}import SendEmail from '#jobs/send_email.js'
await SendEmail.dispatch({ ... })Jobs Dashboard
You can view the jobs dashboard by adding the following route to your start/routes.ts file.
import router from '@adonisjs/core/services/router'
router.jobs() // default is /jobs
// or
router.jobs('/my-jobs-dashboard')router.jobs() returns a route group, you can add middleware to the group
router.jobs().use(
middleware.auth({
guards: ['basicAuth'],
})
)Experimental Features
Dispatch Closure
import { dispatch } from 'adonisjs-jobs/services/main'
await dispatch(async () => {
const { default: User } = await import('#models/user')
console.log(await User.query().count('*'))
})1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago