144 lines
4.6 KiB
TypeScript
144 lines
4.6 KiB
TypeScript
import { AdvancedOptions } from './advanced-options';
|
|
import { QueueBaseOptions } from './queue-options';
|
|
import { RateLimiterOptions } from './rate-limiter-options';
|
|
import { MetricsOptions } from './metrics-options';
|
|
import { KeepJobs } from '../types/keep-jobs';
|
|
import { Telemetry } from './telemetry';
|
|
import { SandboxedOptions } from './sandboxed-options';
|
|
export interface WorkerOptions extends QueueBaseOptions, SandboxedOptions {
|
|
/**
|
|
* Optional worker name. The name will be stored on every job
|
|
* processed by this worker instance, and can be used to monitor
|
|
* which worker is processing or has processed a given job.
|
|
*/
|
|
name?: string;
|
|
/**
|
|
* Condition to start processor at instance creation.
|
|
*
|
|
* @defaultValue true
|
|
*/
|
|
autorun?: boolean;
|
|
/**
|
|
* Amount of jobs that a single worker is allowed to work on
|
|
* in parallel.
|
|
*
|
|
* @defaultValue 1
|
|
* @see {@link https://docs.bullmq.io/guide/workers/concurrency}
|
|
*/
|
|
concurrency?: number;
|
|
/**
|
|
* Enable rate limiter
|
|
* @see {@link https://docs.bullmq.io/guide/rate-limiting}
|
|
*/
|
|
limiter?: RateLimiterOptions;
|
|
/**
|
|
* Enable collect metrics.
|
|
* @see {@link https://docs.bullmq.io/guide/metrics}
|
|
*/
|
|
metrics?: MetricsOptions;
|
|
/**
|
|
* Maximum time in milliseconds where the job is idle while being rate limited.
|
|
* While workers are idle because of a rate limiter, they won't fetch new jobs to process
|
|
* and delayed jobs won't be promoted.
|
|
* @defaultValue 30000
|
|
*/
|
|
maximumRateLimitDelay?: number;
|
|
/**
|
|
* Defines the maximum number of times a job is allowed to start processing,
|
|
* regardless of whether it completes or fails. Each time a worker picks up the job
|
|
* and begins processing it, the attemptsStarted counter is incremented.
|
|
* If this counter reaches maxStartedAttempts, the job will be moved to the failed state with an UnrecoverableError.
|
|
* @defaultValue undefined
|
|
*/
|
|
maxStartedAttempts?: number;
|
|
/**
|
|
* Amount of times a job can be recovered from a stalled state
|
|
* to the `wait` state. If this is exceeded, the job is moved
|
|
* to `failed`.
|
|
*
|
|
* @defaultValue 1
|
|
*/
|
|
maxStalledCount?: number;
|
|
/**
|
|
* Number of milliseconds between stallness checks.
|
|
*
|
|
* @defaultValue 30000
|
|
*/
|
|
stalledInterval?: number;
|
|
/**
|
|
* You can provide an object specifying max
|
|
* age and/or count to keep.
|
|
* Default behavior is to keep the job in the completed set.
|
|
*/
|
|
removeOnComplete?: KeepJobs;
|
|
/**
|
|
* You can provide an object specifying max
|
|
* age and/or count to keep.
|
|
* Default behavior is to keep the job in the failed set.
|
|
*/
|
|
removeOnFail?: KeepJobs;
|
|
/**
|
|
* Skip stalled check for this worker. Note that other workers could still
|
|
* perform stalled checkd and move jobs back to wait for jobs being processed
|
|
* by this worker.
|
|
*
|
|
* @defaultValue false
|
|
*/
|
|
skipStalledCheck?: boolean;
|
|
/**
|
|
* Skip lock renewal for this worker. If set to true, the lock will expire
|
|
* after lockDuration and moved back to the wait queue (if the stalled check is
|
|
* not disabled)
|
|
*
|
|
* @defaultValue false
|
|
*/
|
|
skipLockRenewal?: boolean;
|
|
/**
|
|
* Number of seconds to long poll for jobs when the queue is empty.
|
|
*
|
|
* @defaultValue 5
|
|
*/
|
|
drainDelay?: number;
|
|
/**
|
|
* Duration of the lock for the job in milliseconds. The lock represents that
|
|
* a worker is processing the job. If the lock is lost, the job will be eventually
|
|
* be picked up by the stalled checker and move back to wait so that another worker
|
|
* can process it again.
|
|
*
|
|
* @defaultValue 30000
|
|
*/
|
|
lockDuration?: number;
|
|
/**
|
|
* The time in milliseconds before the lock is automatically renewed.
|
|
*
|
|
* It is not recommended to modify this value, which is by default set to
|
|
* halv the lockDuration value, which is optimal for most use cases.
|
|
*/
|
|
lockRenewTime?: number;
|
|
/**
|
|
* This is an internal option that should not be modified.
|
|
*
|
|
* @defaultValue 15000
|
|
*/
|
|
runRetryDelay?: number;
|
|
/**
|
|
* More advanced options.
|
|
*/
|
|
settings?: AdvancedOptions;
|
|
/**
|
|
* Use Worker Threads instead of Child Processes.
|
|
* Note: This option can only be used when specifying
|
|
* a file for the processor argument.
|
|
*
|
|
* @defaultValue false
|
|
*/
|
|
useWorkerThreads?: boolean;
|
|
/**
|
|
* Telemetry Addon
|
|
*/
|
|
telemetry?: Telemetry;
|
|
}
|
|
export interface GetNextJobOptions {
|
|
block?: boolean;
|
|
}
|