@cavai/adonis-queue
Version:
Basic AdonisJS queue provider
49 lines (48 loc) • 1.32 kB
TypeScript
import type { Logger } from '@adonisjs/core/logger';
import type { QueueManagerFactory, QueueDriver, StoreOptions } from './types.js';
/**
* Config for manager looks like this
*
* {
* default: 'somename',
* queues: {
* somename: () => new DatabaseDrive({
* table_name: 'sjdasjk',
* })
* }
* }
*/
export declare class QueueManager<Mappings extends Record<string, QueueManagerFactory>> {
#private;
protected config: {
default: keyof Mappings;
queues: Mappings;
};
protected logger: Logger;
protected jobsRoot: string;
constructor(config: {
default: keyof Mappings;
queues: Mappings;
}, logger: Logger, jobsRoot: string);
use<K extends keyof Mappings>(queue?: K): QueueDriver;
/**
* Starts up given queue jobs execution
*
* @param queue Queue name to start
*/
start<K extends keyof Mappings>(queue: K): Promise<void>;
/**
* Executes next job in queue
*/
execute(): Promise<void>;
/**
* Stores job to queue for future execution
*
* @param path Path to class file
* @param payload Job payload
* @param options Store options
*/
store(path: string, payload: any, options?: StoreOptions): Promise<{
id: number | string;
}>;
}