Skip to content

Job

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

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:64

MongoDB document identifier


optional claimedBy: string | null;

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

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.


createdAt: Date;

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

Job creation timestamp


data: T;

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

Job payload - must be JSON-serializable


failCount: number;

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

Number of failed attempts


optional failReason: string;

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

Last failure error message


optional heartbeatInterval: number;

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

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:93

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 lockedAt: Date | null;

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

Timestamp when job was locked for processing


name: string;

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

Job type identifier, matches worker registration


nextRunAt: Date;

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

When the job should be processed


optional repeatInterval: string;

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

Cron expression for recurring jobs


status: JobStatusType;

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

Current lifecycle state


optional uniqueKey: string;

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

Deduplication key to prevent duplicate jobs


updatedAt: Date;

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

Last modification timestamp