bunqueue v2.8 API referenceall versions · guide
bunqueue
    Preparing search index...

    Interface Job<T>

    Job interface exposed to users

    interface Job<T = unknown> {
        asJSON(): JobJsonRaw;
        attemptsMade: number;
        attemptsStarted: number;
        changeDelay(delay: number): Promise<void>;
        changePriority(opts: ChangePriorityOpts): Promise<void>;
        clearLogs(keepLogs?: number): Promise<void>;
        data: T;
        deduplicationId?: string;
        delay: number;
        discard(): void;
        extendLock(token: string, duration: number): Promise<number>;
        failedReason?: string;
        finishedOn?: number;
        getChildrenValues<R = unknown>(): Promise<Record<string, R>>;
        getDependencies(opts?: GetDependenciesOpts): Promise<JobDependencies>;
        getDependenciesCount(
            opts?: GetDependenciesOpts,
        ): Promise<JobDependenciesCount>;
        getFailedChildrenValues(): Promise<Record<string, string>>;
        getIgnoredChildrenFailures(): Promise<Record<string, string>>;
        getState(): Promise<JobStateType>;
        id: string;
        isActive(): Promise<boolean>;
        isCompleted(): Promise<boolean>;
        isDelayed(): Promise<boolean>;
        isFailed(): Promise<boolean>;
        isWaiting(): Promise<boolean>;
        isWaitingChildren(): Promise<boolean>;
        log(message: string): Promise<void>;
        moveToCompleted(
            returnValue: unknown,
            token?: string,
            fetchNext?: boolean,
        ): Promise<unknown>;
        moveToDelayed(timestamp: number, token?: string): Promise<void>;
        moveToFailed(
            error: Error,
            token?: string,
            fetchNext?: boolean,
        ): Promise<void>;
        moveToWait(token?: string): Promise<boolean>;
        moveToWaitingChildren(
            token?: string,
            opts?: { child?: { id: string; queue: string } },
        ): Promise<boolean>;
        name: string;
        opts: JobOptions;
        parent?: { id: string; queueQualifiedName: string };
        parentKey?: string;
        priority: number;
        processedBy?: string;
        processedOn?: number;
        progress: number;
        promote(): Promise<void>;
        queueName: string;
        remove(): Promise<void>;
        removeChildDependency(): Promise<boolean>;
        removeDeduplicationKey(): Promise<boolean>;
        removeUnprocessedChildren(): Promise<void>;
        repeatJobKey?: string;
        retry(): Promise<void>;
        returnvalue?: unknown;
        stacktrace: string[] | null;
        stalledCounter: number;
        timestamp: number;
        toJSON(): JobJson<T>;
        token?: string;
        updateData(data: T): Promise<void>;
        updateProgress(progress: number, message?: string): Promise<void>;
        waitUntilFinished(queueEvents: unknown, ttl?: number): Promise<unknown>;
    }

    Type Parameters

    • T = unknown
    Index
    attemptsMade: number
    attemptsStarted: number

    Number of times job processing has been started (includes retries)

    data: T
    deduplicationId?: string

    Deduplication ID (if set via jobId)

    delay: number

    Delay in ms before job becomes available for processing

    failedReason?: string
    finishedOn?: number

    Timestamp when job finished (completed or failed)

    id: string
    name: string

    Original job options

    parent?: { id: string; queueQualifiedName: string }

    Parent job reference (if this job is part of a flow)

    parentKey?: string

    Parent key in format queueName:jobId

    priority: number

    Job priority (higher = processed sooner)

    processedBy?: string

    Worker/client identifier processing this job

    processedOn?: number

    Timestamp when job started processing

    progress: number
    queueName: string
    repeatJobKey?: string

    Repeat job key (for repeatable jobs)

    returnvalue?: unknown
    stacktrace: string[] | null

    Stack traces from failed attempts

    stalledCounter: number

    Number of times this job has been stalled

    timestamp: number
    token?: string

    Lock token for this job (if processing)

    • Change job delay

      Parameters

      • delay: number

      Returns Promise<void>

    • Clear job logs

      Parameters

      • OptionalkeepLogs: number

      Returns Promise<void>

    • Discard this job - marks it to not be processed further. The job will be moved to failed state with a "discarded" reason.

      Returns void

    • Extend job lock duration

      Parameters

      • token: string
      • duration: number

      Returns Promise<number>

    • Get the return values of all children jobs (BullMQ v5 compatible). Returns a Record where keys are job keys (queueName:jobId) and values are return values.

      Type Parameters

      • R = unknown

        Type of the children return values

      Returns Promise<Record<string, R>>

    • Get return values of failed children jobs.

      Returns Promise<Record<string, string>>

      Record where keys are job keys (queueName:jobId) and values are failure reasons

    • Get child job failures that were explicitly ignored (via ignoreDependencyOnFailure).

      Returns Promise<Record<string, string>>

      Record where keys are job keys and values are failure reasons

    • Check if job is currently active/processing

      Returns Promise<boolean>

    • Check if job has completed successfully

      Returns Promise<boolean>

    • Check if job is delayed

      Returns Promise<boolean>

    • Check if job has failed

      Returns Promise<boolean>

    • Check if job is in waiting state

      Returns Promise<boolean>

    • Check if job is waiting for children to complete

      Returns Promise<boolean>

    • Log a message to the job

      Parameters

      • message: string

      Returns Promise<void>

    • Move job to completed state.

      Parameters

      • returnValue: unknown

        The return value of the job

      • Optionaltoken: string

        Lock token (optional in embedded mode)

      • OptionalfetchNext: boolean

        Whether to fetch the next job (default: true)

      Returns Promise<unknown>

      The next job data or null

    • Move job to delayed state.

      Parameters

      • timestamp: number

        When the job should become available

      • Optionaltoken: string

        Lock token (optional in embedded mode)

      Returns Promise<void>

    • Move job to failed state.

      Parameters

      • error: Error

        The error that caused the failure

      • Optionaltoken: string

        Lock token (optional in embedded mode)

      • OptionalfetchNext: boolean

        Whether to fetch the next job (default: true)

      Returns Promise<void>

    • Move job back to waiting state.

      Parameters

      • Optionaltoken: string

        Lock token (optional in embedded mode)

      Returns Promise<boolean>

      true if job was moved

    • Move job to waiting-children state. Job will wait for all children to complete before processing.

      Parameters

      • Optionaltoken: string

        Lock token (optional in embedded mode)

      • Optionalopts: { child?: { id: string; queue: string } }

        Options for the operation

      Returns Promise<boolean>

      true if job was moved

    • Promote delayed job to waiting

      Returns Promise<void>

    • Remove this job from the queue

      Returns Promise<void>

    • Remove this job's dependency relationship with its parent.

      Returns Promise<boolean>

      true if dependency was removed

    • Remove the deduplication key associated with this job.

      Returns Promise<boolean>

      true if key was removed

    • Remove all unprocessed child jobs of this job.

      Returns Promise<void>

    • Update job data

      Parameters

      • data: T

      Returns Promise<void>

    • Update job progress (0-100)

      Parameters

      • progress: number
      • Optionalmessage: string

      Returns Promise<void>

    • Wait until the job has finished (completed or failed).

      Parameters

      • queueEvents: unknown

        QueueEvents instance to listen on

      • Optionalttl: number

        Maximum time to wait in ms (optional)

      Returns Promise<unknown>

      The job's return value

      Error if job fails or times out