Skip to content

Job

Defined in: packages/core/src/jobs/types.ts:59

Represents a job in the Monque queue.

interface EmailJobData {
  to: string;
  subject: string;
  template: string;
}

const job: Job<EmailJobData> = {
  name: 'send-email',
  data: { to: 'user@example.com', subject: 'Welcome!', template: 'welcome' },
  status: JobStatus.PENDING,
  nextRunAt: new Date(),
  failCount: 0,
  createdAt: new Date(),
  updatedAt: new Date(),
};
Type ParameterDefault typeDescription
TunknownThe type of the job’s data payload
optional _id?: ObjectId;

Defined in: packages/core/src/jobs/types.ts:61

MongoDB document identifier


optional claimedBy?: string | null;

Defined in: packages/core/src/jobs/types.ts:79

Unique identifier of the scheduler instance that claimed this job. Used for atomic claim pattern - ensures only one instance processes each job. Set when a job is claimed, cleared when job completes or fails.


optional claimId?: string;

Defined in: packages/core/src/jobs/types.ts:81

Identifier of this execution’s claim; changes whenever the job is claimed again.


createdAt: Date;

Defined in: packages/core/src/jobs/types.ts:106

Job creation timestamp


data: T;

Defined in: packages/core/src/jobs/types.ts:65

Job payload - must be JSON-serializable


failCount: number;

Defined in: packages/core/src/jobs/types.ts:96

Number of failed attempts


optional failReason?: string;

Defined in: packages/core/src/jobs/types.ts:98

Last failure error message


optional heartbeatInterval?: number;

Defined in: packages/core/src/jobs/types.ts:94

Heartbeat interval in milliseconds for this job. Stored on the job to allow recovery logic to use the correct timeout.


optional lastHeartbeat?: Date | null;

Defined in: packages/core/src/jobs/types.ts:89

Timestamp of the last heartbeat update for this job. Used to detect stale jobs when a scheduler instance crashes without releasing. Updated periodically while job is being processed.


optional leaseExpiresAt?: Date;

Defined in: packages/core/src/jobs/types.ts:83

Renewable claim deadline, measured by MongoDB’s clock. Absent for absolute locks.


optional lockedAt?: Date | null;

Defined in: packages/core/src/jobs/types.ts:73

Timestamp when job was locked for processing


name: string;

Defined in: packages/core/src/jobs/types.ts:63

Job type identifier, matches worker registration


nextRunAt: Date;

Defined in: packages/core/src/jobs/types.ts:71

When the job should be processed


optional priority?: number;

Defined in: packages/core/src/jobs/types.ts:69

Higher safe integers run first among due Jobs with the same name. Defaults to 0.


optional repeatInterval?: string;

Defined in: packages/core/src/jobs/types.ts:100

Cron expression for recurring jobs


status: JobStatusType;

Defined in: packages/core/src/jobs/types.ts:67

Current lifecycle state


optional timezone?: string;

Defined in: packages/core/src/jobs/types.ts:102

IANA timezone for recurring cron evaluation; omitted uses the server’s local timezone.


optional uniqueKey?: string;

Defined in: packages/core/src/jobs/types.ts:104

Deduplication key to prevent duplicate jobs


updatedAt: Date;

Defined in: packages/core/src/jobs/types.ts:108

Last modification timestamp