import { JobsOptions } from '../types/job-options'; /** * Describes the parent for a Job. */ export interface Parent { /** Parent job name. */ name: string; /** Prefix for the parent queue's keys. */ prefix?: string; /** Name of the parent queue. */ queue?: string; /** Parent job data. */ data?: T; /** Job options for the parent. */ opts?: JobsOptions; } /** * Redis-stored parent reference keys used internally by BullMQ. */ export interface ParentKeys { /** Parent job id. */ id?: string; /** Qualified parent queue key prefix/name (for example, `${prefix}:${queueName}`). */ queueKey: string; /** failParentOnFailure - if true, parent fails when child fails. */ fpof?: boolean; /** removeDependencyOnFailure - if true, removes the child from parent's dependencies on failure. */ rdof?: boolean; /** ignoreDependencyOnFailure - if true, moves the child job key to failed dependencies on failure. */ idof?: boolean; /** continueParentOnFailure - if true, parent starts processing when any child fails. */ cpof?: boolean; } /** * Options used internally for parent/child relationship management when creating jobs * (including associating a child with its parent, or creating a parent that starts in * the `waiting-children` state). */ export type ParentKeyOpts = { /** * If true, the newly-created parent job will be placed into the parent queue's * `waiting-children` state (waiting for children to complete) instead of `wait`. */ addToWaitingChildren?: boolean; /** Redis key holding the parent's dependencies set. */ parentDependenciesKey?: string; /** Fully-qualified Redis key of the parent job. */ parentKey?: string; };