@cavai/adonis-queue
Version:
Basic AdonisJS queue provider
28 lines (27 loc) • 1.04 kB
JavaScript
/// <reference types="@adonisjs/lucid/database_provider" />
import { BaseJob } from '../src/base_job.js';
import { QueueManager } from '../src/queue_manager.js';
import DatabaseDriver from '../src/drivers/database.js';
import DriversCollection from '../src/drivers_collection.js';
export default class QueueProvider {
app;
constructor(app) {
this.app = app;
}
register() {
this.app.container.singleton('cavai.queue', async (resolver) => {
const config = this.app.config.get('queue');
const logger = await resolver.make('logger');
const queueManager = new QueueManager(config, logger, this.app.makePath());
return queueManager;
});
}
async boot() {
const db = await this.app.container.make('lucid.db');
const queue = await this.app.container.make('cavai.queue');
DriversCollection.extend('database', (config) => {
return new DatabaseDriver(config, db);
});
BaseJob.useQueue(queue);
}
}