Kue provider for the Adonis framework
npm install adonis-kueA Kue provider for the Adonis framework.
This library provides an easy way to get started with an asynchronous job queue for AdonisJS.
```
npm install --save adonis-kue
Register the kue provider in start/app.js:
`javascript`
const providers = [
...
'adonis-kue/providers/KueProvider'
]
Register the commands provider in start/app.js:
`javascript`
const aceProviders = [
...
'adonis-kue/providers/CommandsProvider'
]
Register the jobs in start/app.js:
`javascript`
const jobs = [
...
'App/Jobs/Example'
]
And then export the jobs array:
`js`
module.exports = { providers, aceProviders, aliases, commands, jobs }
Add a configuration file in config/kue.js. For example:
`javascript
'use strict'
const Env = use('Env')
module.exports = {
// redis connection
connection: Env.get('KUE_CONNECTION', 'kue')
}
`
| Starting the listener
adonis make:job | Make a new Job (Queue)$3
Starting an instance of the kue listener is easy with the included ace command. Simply run
./ace kue:listen or adonis kue:listen.$3
They expose the following properties:
| Name | Required | Type | Static | Description |
|-------------|----------|-----------|--------|-------------------------------------------------------|
| concurrency | false | number | true | The number of concurrent jobs the handler will accept |
| key | true | string | true | A unique key for this job |
| handle | true | function | false | A function that is called for this job. |
$3
Now that your job listener is running and ready to do some asynchronous work, you can start dispatching jobs.
`javascript
const kue = use('Kue')
const Job = use('App/Jobs/Example')
const data = { test: 'data' } // Data to be passed to job handle
const priority = 'normal' // Priority of job, can be low, normal, medium, high or critical
const attempts = 1 // Number of times to attempt job if it fails
const remove = true // Should jobs be automatically removed on completion
const jobFn = job => { // Function to be run on the job before it is saved
job.backoff()
}
const job = kue.dispatch(Job.key, data, { priority, attempts, remove, jobFn })// If you want to wait on the result, you can do this
const result = await job.result
``Special thanks to the creator(s) of AdonisJS for creating such a great framework.