import { ResqueFailure } from "./types.js"; import { Logger } from "@adonisjs/core/logger"; import { Plugin } from "node-resque"; export default class BaseJob { interval?: string | number; cron?: string; plugins: [typeof Plugin, any][]; delayMs: number; runAtMs?: number; /** * the default JobName is this class name * it **MUST be a unique name** */ jobName?: string; /** * set a queueName for this job * default configured in `config/resque.ts` */ queueName?: string; args: any[]; allArgs: any[][]; hasEnqueued: boolean; hasEnqueuedAll: boolean; app: import("@adonisjs/core/types").ApplicationService; logger: Logger; constructor(..._args: any[]); private createLogger; static enqueue(this: T, ...args: Parameters): BaseJob; enqueue(this: T, ...args: Parameters): T; static queue(queueName: string): BaseJob; queue(queueName: string): this; static enqueueAll(this: T, args: Parameters[]): BaseJob; enqueueAll(this: T, args: Parameters[]): T; static in(ms: number): BaseJob; in(ms: number): this; static at(ms: number): BaseJob; at(ms: number): this; perform(..._args: any[]): any; handleError(error: unknown): void; onFailure(_failure: ResqueFailure): void | Promise; private execute; /** * this method runs after an `await` statement * e.g, * ```typescript * await job.enqueue().in(2000) * ``` * @param fn */ then(fn: (result: void | boolean | boolean[]) => void): void; }