Job
Job
A Job represents a piece of work to be run in the background, i.e. outside the request-response cycle.
It is intended to be used for long-running work triggered by API requests. Jobs should now generally
be directly instantiated. Rather, the JobQueue add()
method should be used to create and
add a new Job to a queue.
class Job<T extends JobData<T> = any> {
readonly id: number | string | null;
readonly queueName: string;
readonly retries: number;
readonly createdAt: Date;
name: string
data: T
state: JobState
progress: number
result: any
error: any
isSettled: boolean
startedAt: Date | undefined
settledAt: Date | undefined
duration: number
attempts: number
constructor(config: JobConfig<T>)
start() => ;
setProgress(percent: number) => ;
complete(result?: any) => ;
fail(err?: any) => ;
cancel() => ;
defer() => ;
on(eventType: JobEventType, listener: JobEventListener<T>) => ;
off(eventType: JobEventType, listener: JobEventListener<T>) => ;
}
id
number | string | null
queueName
string
retries
number
createdAt
Date
name
string
data
T
state
progress
number
result
any
error
any
isSettled
boolean
startedAt
Date | undefined
settledAt
Date | undefined
duration
number
attempts
number
constructor
(config: JobConfig<T>) => Job
start
() =>
Calling this signifies that the job work has started. This method should be
called in the JobQueueStrategy next()
method.
setProgress
(percent: number) =>
Sets the progress (0 - 100) of the job.
complete
(result?: any) =>
Calling this method signifies that the job succeeded. The result
will be stored in the Job.result
property.
fail
(err?: any) =>
Calling this method signifies that the job failed.
cancel
() =>
defer
() =>
Sets a RUNNING job back to PENDING. Should be used when the JobQueue is being destroyed before the job has been completed.
on
(eventType: JobEventType, listener: JobEventListener<T>) =>
Used to register event handler for job events
off
(eventType: JobEventType, listener: JobEventListener<T>) =>
JobEventType
An event raised by a Job.
type JobEventType = 'progress'
JobEventListener
The signature of the event handler expected by the Job.on()
method.
type JobEventListener<T extends JobData<T>> = (job: Job<T>) => void