@nestarc/jobs
Classes
BullMQBackend
Defined in: src/backend/bullmq-backend.ts:118
Implements
Constructors
Constructor
new BullMQBackend(opts): BullMQBackend;Defined in: src/backend/bullmq-backend.ts:131
Parameters
| Parameter | Type |
|---|---|
opts | BullMQBackendOptions |
Returns
Methods
ack()
ack(_jobType?, _jobId?): Promise<void>;Defined in: src/backend/bullmq-backend.ts:429
Parameters
| Parameter | Type |
|---|---|
_jobType? | string |
_jobId? | string |
Returns
Promise<void>
Implementation of
capabilities()
capabilities(): BackendCapabilities;Defined in: src/backend/bullmq-backend.ts:142
Returns
Implementation of
close()
close(): Promise<void>;Defined in: src/backend/bullmq-backend.ts:560
Returns
Promise<void>
Implementation of
enqueue()
enqueue(
jobType,
envelope,
opts): Promise<string>;Defined in: src/backend/bullmq-backend.ts:163
Parameters
| Parameter | Type |
|---|---|
jobType | string |
envelope | Record<string, unknown> |
opts | EnqueueOptions |
Returns
Promise<string>
Implementation of
enqueueDetailed()
enqueueDetailed(
jobType,
envelope,
opts,
onCommit?): Promise<EnqueueResult>;Defined in: src/backend/bullmq-backend.ts:171
Parameters
| Parameter | Type |
|---|---|
jobType | string |
envelope | Record<string, unknown> |
opts | EnqueueOptions |
onCommit? | EnqueueCommitObserver |
Returns
Promise<EnqueueResult>
Implementation of
fail()
fail(
_jobType?,
_jobId?,
_reason?): Promise<void>;Defined in: src/backend/bullmq-backend.ts:433
Parameters
| Parameter | Type |
|---|---|
_jobType? | string |
_jobId? | string |
_reason? | string |
Returns
Promise<void>
Implementation of
getJob()
getJob(jobId): Promise<JobRecord<unknown, unknown> | null>;Defined in: src/backend/bullmq-backend.ts:378
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise<JobRecord<unknown, unknown> | null>
Implementation of
getJobHistory()
getJobHistory(_jobId): Promise<JobHistoryEntry[]>;Defined in: src/backend/bullmq-backend.ts:417
Parameters
| Parameter | Type |
|---|---|
_jobId | string |
Returns
Promise<JobHistoryEntry[]>
Implementation of
getRawQueue()
getRawQueue<TQueue>(jobType): TQueue;Defined in: src/backend/bullmq-backend.ts:572
Type Parameters
| Type Parameter | Default type |
|---|---|
TQueue | BullMQRawQueue |
Parameters
| Parameter | Type |
|---|---|
jobType | string |
Returns
TQueue
moveToActive()
moveToActive(_jobType?, _jobId?): Promise<JobEnvelope<unknown> | null>;Defined in: src/backend/bullmq-backend.ts:425
Parameters
| Parameter | Type |
|---|---|
_jobType? | string |
_jobId? | string |
Returns
Promise<JobEnvelope<unknown> | null>
Implementation of
peekWaiting()
peekWaiting(_jobType?): Promise<JobEnvelope<unknown>[]>;Defined in: src/backend/bullmq-backend.ts:421
Parameters
| Parameter | Type |
|---|---|
_jobType? | string |
Returns
Promise<JobEnvelope<unknown>[]>
Implementation of
pruneTerminal()
pruneTerminal(options): Promise<number>;Defined in: src/backend/bullmq-backend.ts:480
Offline maintenance: stop producers/admin writers first. Workers are paused and must be idle.
Parameters
| Parameter | Type |
|---|---|
options | RetentionCleanupOptions |
Returns
Promise<number>
registerJobTypes()
registerJobTypes(jobTypes): void;Defined in: src/backend/bullmq-backend.ts:159
Parameters
| Parameter | Type |
|---|---|
jobTypes | Iterable<string> |
Returns
void
startConsumer()
startConsumer(jobTypes, consumer): void;Defined in: src/backend/bullmq-backend.ts:437
Parameters
| Parameter | Type |
|---|---|
jobTypes | string[] |
consumer | BullMQConsumerOptions |
Returns
void
FairWorker
Defined in: src/fair-worker.ts:37
Constructors
Constructor
new FairWorker(opts): FairWorker;Defined in: src/fair-worker.ts:54
Parameters
| Parameter | Type |
|---|---|
opts | FairWorkerOptions |
Returns
Methods
outstandingJobIds()
outstandingJobIds(): string[];Defined in: src/fair-worker.ts:46
Returns
string[]
pendingRecoveryJobIds()
pendingRecoveryJobIds(): string[];Defined in: src/fair-worker.ts:42
Returns
string[]
tick()
tick(): Promise<boolean>;Defined in: src/fair-worker.ts:63
Returns
Promise<boolean>
waitForIdle()
waitForIdle(): Promise<void>;Defined in: src/fair-worker.ts:50
Returns
Promise<void>
FakeClock
Defined in: src/fake-clock.ts:1
Constructors
Constructor
new FakeClock(now?): FakeClock;Defined in: src/fake-clock.ts:4
Parameters
| Parameter | Type |
|---|---|
now | string | number | Date |
Returns
Methods
advanceBy()
advanceBy(ms): Date;Defined in: src/fake-clock.ts:12
Parameters
| Parameter | Type |
|---|---|
ms | number |
Returns
Date
now()
now(): Date;Defined in: src/fake-clock.ts:8
Returns
Date
set()
set(next): Date;Defined in: src/fake-clock.ts:17
Parameters
| Parameter | Type |
|---|---|
next | string | number | Date |
Returns
Date
FakeJobsService
Defined in: src/fake-jobs.service.ts:20
Constructors
Constructor
new FakeJobsService(opts): FakeJobsService;Defined in: src/fake-jobs.service.ts:28
Parameters
| Parameter | Type |
|---|---|
opts | FakeJobsOptions |
Returns
Properties
backend
readonly backend: InMemoryBackend;Defined in: src/fake-jobs.service.ts:24
clock
readonly clock: FakeClock;Defined in: src/fake-jobs.service.ts:23
registry
readonly registry: HandlerRegistry;Defined in: src/fake-jobs.service.ts:22
schedulers
readonly schedulers: Map<string, Scheduler>;Defined in: src/fake-jobs.service.ts:25
service
readonly service: JobsService;Defined in: src/fake-jobs.service.ts:21
Methods
drain()
drain(maxIterations?): Promise<void>;Defined in: src/fake-jobs.service.ts:61
Parameters
| Parameter | Type | Default value |
|---|---|---|
maxIterations | number | 1000 |
Returns
Promise<void>
drainUntilIdle()
drainUntilIdle(maxIterations?): Promise<void>;Defined in: src/fake-jobs.service.ts:65
Parameters
| Parameter | Type | Default value |
|---|---|---|
maxIterations | number | 1000 |
Returns
Promise<void>
HandlerRegistry
Defined in: src/handler-registry.ts:6
Constructors
Constructor
new HandlerRegistry(): HandlerRegistry;Returns
Methods
invoke()
invoke(
jobType,
payload,
context): Promise<unknown>;Defined in: src/handler-registry.ts:16
Parameters
| Parameter | Type |
|---|---|
jobType | string |
payload | Record<string, unknown> |
context | JobContext |
Returns
Promise<unknown>
list()
list(): string[];Defined in: src/handler-registry.ts:26
Returns
string[]
register()
register(jobType, handler): void;Defined in: src/handler-registry.ts:9
Parameters
| Parameter | Type |
|---|---|
jobType | string |
handler | HandlerFn |
Returns
void
InMemoryBackend
Defined in: src/backend/in-memory-backend.ts:58
Implements
Constructors
Constructor
new InMemoryBackend(opts?): InMemoryBackend;Defined in: src/backend/in-memory-backend.ts:67
Parameters
| Parameter | Type |
|---|---|
opts | InMemoryBackendOptions |
Returns
Accessors
lifecycleState
Get Signature
get lifecycleState(): "open" | "closing" | "closed";Defined in: src/backend/in-memory-backend.ts:425
Returns
"open" | "closing" | "closed"
Methods
ack()
ack(
jobType,
jobId,
activationId): Promise<JobRecord<unknown, unknown>>;Defined in: src/backend/in-memory-backend.ts:207
Parameters
| Parameter | Type |
|---|---|
jobType | string |
jobId | string |
activationId | string |
Returns
Promise<JobRecord<unknown, unknown>>
Implementation of
beginClose()
beginClose(): void;Defined in: src/backend/in-memory-backend.ts:429
Returns
void
capabilities()
capabilities(): BackendCapabilities;Defined in: src/backend/in-memory-backend.ts:72
Returns
Implementation of
close()
close(): Promise<void>;Defined in: src/backend/in-memory-backend.ts:443
Returns
Promise<void>
Implementation of
discardDeadLetter()
discardDeadLetter(jobId, reason?): Promise<void | JobRecord<unknown, unknown>>;Defined in: src/backend/in-memory-backend.ts:376
Parameters
| Parameter | Type | Default value |
|---|---|---|
jobId | string | undefined |
reason | string | 'discarded' |
Returns
Promise<void | JobRecord<unknown, unknown>>
Implementation of
enqueue()
enqueue(
jobType,
envelope,
opts): Promise<string>;Defined in: src/backend/in-memory-backend.ts:90
Parameters
| Parameter | Type |
|---|---|
jobType | string |
envelope | Record<string, unknown> |
opts | EnqueueOptions |
Returns
Promise<string>
Implementation of
enqueueDetailed()
enqueueDetailed(
jobType,
envelope,
opts,
onCommit?): Promise<EnqueueResult>;Defined in: src/backend/in-memory-backend.ts:98
Parameters
| Parameter | Type |
|---|---|
jobType | string |
envelope | Record<string, unknown> |
opts | EnqueueOptions |
onCommit? | EnqueueCommitObserver |
Returns
Promise<EnqueueResult>
Implementation of
fail()
fail(
jobType,
jobId,
reason,
activationId): Promise<void | JobRecord<unknown, unknown>>;Defined in: src/backend/in-memory-backend.ts:222
Parameters
| Parameter | Type |
|---|---|
jobType | string |
jobId | string |
reason | string |
activationId | string |
Returns
Promise<void | JobRecord<unknown, unknown>>
Implementation of
getJob()
getJob(jobId): Promise<JobRecord<unknown, unknown> | null>;Defined in: src/backend/in-memory-backend.ts:286
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise<JobRecord<unknown, unknown> | null>
Implementation of
getJobHistory()
getJobHistory(jobId): Promise<JobHistoryEntry[]>;Defined in: src/backend/in-memory-backend.ts:291
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise<JobHistoryEntry[]>
Implementation of
listDeadLetters()
listDeadLetters(filter?): Promise<JobRecord<unknown, unknown>[]>;Defined in: src/backend/in-memory-backend.ts:295
Parameters
| Parameter | Type |
|---|---|
filter | DeadLetterFilter |
Returns
Promise<JobRecord<unknown, unknown>[]>
Implementation of
markCancelled()
markCancelled(
jobType,
jobId,
reason?): Promise<JobRecord<unknown, unknown> | null>;Defined in: src/backend/in-memory-backend.ts:267
Parameters
| Parameter | Type | Default value |
|---|---|---|
jobType | string | undefined |
jobId | string | undefined |
reason | string | 'cancelled' |
Returns
Promise<JobRecord<unknown, unknown> | null>
markFailed()
markFailed(
jobType,
jobId,
reason,
activationId,
error?): Promise<JobRecord<unknown, unknown> | null>;Defined in: src/backend/in-memory-backend.ts:232
Parameters
| Parameter | Type |
|---|---|
jobType | string |
jobId | string |
reason | string |
activationId | string |
error? | JobErrorSummary |
Returns
Promise<JobRecord<unknown, unknown> | null>
moveToActive()
moveToActive(
jobType,
jobId,
activationId?): Promise<JobEnvelope<unknown> | null>;Defined in: src/backend/in-memory-backend.ts:187
Parameters
| Parameter | Type |
|---|---|
jobType | string |
jobId | string |
activationId? | string |
Returns
Promise<JobEnvelope<unknown> | null>
Implementation of
peekWaiting()
peekWaiting(jobType): Promise<JobEnvelope<unknown>[]>;Defined in: src/backend/in-memory-backend.ts:181
Parameters
| Parameter | Type |
|---|---|
jobType | string |
Returns
Promise<JobEnvelope<unknown>[]>
Implementation of
pendingJobIds()
pendingJobIds(): string[];Defined in: src/backend/in-memory-backend.ts:433
Returns
string[]
pruneTerminal()
pruneTerminal(options): Promise<number>;Defined in: src/backend/in-memory-backend.ts:390
Run during a quiescent maintenance window. Young terminal identities are never evicted.
Parameters
| Parameter | Type |
|---|---|
options | RetentionCleanupOptions |
Returns
Promise<number>
replayDeadLetter()
replayDeadLetter(jobId, options?): Promise<string>;Defined in: src/backend/in-memory-backend.ts:310
Parameters
| Parameter | Type |
|---|---|
jobId | string |
options | ReplayOptions |
Returns
Promise<string>
Implementation of
JobsError
Defined in: src/errors.ts:18
Extends
Error
Extended by
Constructors
Constructor
new JobsError(code, reason?): JobsError;Defined in: src/errors.ts:21
Parameters
| Parameter | Type |
|---|---|
code | JobsErrorCode |
reason? | string |
Returns
Overrides
Error.constructorProperties
cause?
optional cause?: unknown;Defined in: node_modules/typescript/lib/lib.es2022.error.d.ts:26
Inherited from
Error.causecode
readonly code: JobsErrorCode;Defined in: src/errors.ts:19
message
message: string;Defined in: node_modules/typescript/lib/lib.es5.d.ts:1077
Inherited from
Error.messagename
name: string;Defined in: node_modules/typescript/lib/lib.es5.d.ts:1076
Inherited from
Error.namestack?
optional stack?: string;Defined in: node_modules/typescript/lib/lib.es5.d.ts:1078
Inherited from
Error.stackstackTraceLimit
static stackTraceLimit: number;Defined in: node_modules/@types/node/globals.d.ts:68
The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
Inherited from
Error.stackTraceLimitMethods
captureStackTrace()
static captureStackTrace(targetObject, constructorOpt?): void;Defined in: node_modules/@types/node/globals.d.ts:52
Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.
The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();Parameters
| Parameter | Type |
|---|---|
targetObject | object |
constructorOpt? | Function |
Returns
void
Inherited from
Error.captureStackTraceprepareStackTrace()
static prepareStackTrace(err, stackTraces): any;Defined in: node_modules/@types/node/globals.d.ts:56
Parameters
| Parameter | Type |
|---|---|
err | Error |
stackTraces | CallSite[] |
Returns
any
See
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Error.prepareStackTraceJobsModule
Defined in: src/jobs.module.ts:391
Constructors
Constructor
new JobsModule(): JobsModule;Returns
Methods
forBullMQ()
static forBullMQ(options): DynamicModule;Defined in: src/jobs.module.ts:493
Parameters
| Parameter | Type |
|---|---|
options | BullMQOptions |
Returns
DynamicModule
forInMemory()
static forInMemory(options): DynamicModule;Defined in: src/jobs.module.ts:392
Parameters
| Parameter | Type |
|---|---|
options | InMemoryOptions |
Returns
DynamicModule
JobsOutboxBridge
Defined in: src/outbox/outbox-bridge.module.ts:21
Deprecated
Compatibility-only bridge without source identity/lineage. Use createOutboxJobsPublisher for first-party Outbox.
Constructors
Constructor
new JobsOutboxBridge(opts): JobsOutboxBridge;Defined in: src/outbox/outbox-bridge.module.ts:22
Parameters
| Parameter | Type |
|---|---|
opts | JobsOutboxBridgeOptions |
Returns
JobsService
Defined in: src/jobs.service.ts:37
Constructors
Constructor
new JobsService(deps): JobsService;Defined in: src/jobs.service.ts:41
Parameters
| Parameter | Type |
|---|---|
deps | JobsServiceDeps |
Returns
Methods
capabilities()
capabilities(): BackendCapabilities;Defined in: src/jobs.service.ts:124
Returns
discardDeadLetter()
discardDeadLetter(jobId, reason?): Promise<void>;Defined in: src/jobs.service.ts:248
Parameters
| Parameter | Type |
|---|---|
jobId | string |
reason? | string |
Returns
Promise<void>
enqueue()
enqueue(
jobType,
payload,
opts?): Promise<string>;Defined in: src/jobs.service.ts:48
Parameters
| Parameter | Type |
|---|---|
jobType | string |
payload | object |
opts | EnqueueOptions<object, object> |
Returns
Promise<string>
enqueueDetailed()
enqueueDetailed(
jobType,
payload,
opts?): Promise<EnqueueResult>;Defined in: src/jobs.service.ts:56
Parameters
| Parameter | Type |
|---|---|
jobType | string |
payload | object |
opts | EnqueueOptions<object, object> |
Returns
Promise<EnqueueResult>
getJob()
getJob<TPayload, TContext>(jobId): Promise<JobRecord<TPayload, TContext> | null>;Defined in: src/jobs.service.ts:137
Type Parameters
| Type Parameter | Default type |
|---|---|
TPayload | unknown |
TContext | unknown |
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise<JobRecord<TPayload, TContext> | null>
getJobForTenant()
getJobForTenant(jobId, expectedTenantId): Promise<JobRecord<unknown, unknown> | null>;Defined in: src/jobs.service.ts:129
Authorization remains the caller's responsibility; mismatches look like missing IDs.
Parameters
| Parameter | Type |
|---|---|
jobId | string |
expectedTenantId | string |
Returns
Promise<JobRecord<unknown, unknown> | null>
getJobHistory()
getJobHistory(jobId): Promise<JobHistoryEntry[]>;Defined in: src/jobs.service.ts:143
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise<JobHistoryEntry[]>
listDeadLetters()
listDeadLetters(filter?): Promise<JobRecord<unknown, unknown>[]>;Defined in: src/jobs.service.ts:148
Parameters
| Parameter | Type |
|---|---|
filter? | DeadLetterFilter |
Returns
Promise<JobRecord<unknown, unknown>[]>
replayDeadLetter()
replayDeadLetter(jobId, options?): Promise<string>;Defined in: src/jobs.service.ts:156
Parameters
| Parameter | Type |
|---|---|
jobId | string |
options? | ReplayOptions |
Returns
Promise<string>
scheduler()
scheduler(jobType): Scheduler;Defined in: src/jobs.service.ts:273
Parameters
| Parameter | Type |
|---|---|
jobType | string |
Returns
setTenantWeight()
setTenantWeight(
jobType,
tenantId,
weight): void;Defined in: src/jobs.service.ts:269
Parameters
| Parameter | Type |
|---|---|
jobType | string |
tenantId | string | undefined |
weight | number |
Returns
void
JobsShutdownError
Defined in: src/errors.ts:29
Shutdown did not complete; admission remains closed and records are retained.
Extends
Constructors
Constructor
new JobsShutdownError(
reason,
jobIds,
cause?): JobsShutdownError;Defined in: src/errors.ts:33
Parameters
| Parameter | Type |
|---|---|
reason | "deadline" | "pending_jobs" | "worker_error" |
jobIds | readonly string[] |
cause? | unknown |
Returns
Overrides
Properties
cause?
optional cause?: unknown;Defined in: node_modules/typescript/lib/lib.es2022.error.d.ts:26
Inherited from
code
readonly code: JobsErrorCode;Defined in: src/errors.ts:19
Inherited from
message
message: string;Defined in: node_modules/typescript/lib/lib.es5.d.ts:1077
Inherited from
name
name: string;Defined in: node_modules/typescript/lib/lib.es5.d.ts:1076
Inherited from
reason
readonly reason: "deadline" | "pending_jobs" | "worker_error";Defined in: src/errors.ts:34
remainingCount
readonly remainingCount: number;Defined in: src/errors.ts:31
remainingJobIds
readonly remainingJobIds: readonly string[];Defined in: src/errors.ts:30
stack?
optional stack?: string;Defined in: node_modules/typescript/lib/lib.es5.d.ts:1078
Inherited from
stackTraceLimit
static stackTraceLimit: number;Defined in: node_modules/@types/node/globals.d.ts:68
The Error.stackTraceLimit property specifies the number of stack frames collected by a stack trace (whether generated by new Error().stack or Error.captureStackTrace(obj)).
The default value is 10 but may be set to any valid JavaScript number. Changes will affect any stack trace captured after the value has been changed.
If set to a non-number value, or set to a negative number, stack traces will not capture any frames.
Inherited from
Methods
captureStackTrace()
static captureStackTrace(targetObject, constructorOpt?): void;Defined in: node_modules/@types/node/globals.d.ts:52
Creates a .stack property on targetObject, which when accessed returns a string representing the location in the code at which Error.captureStackTrace() was called.
const myObject = {};
Error.captureStackTrace(myObject);
myObject.stack; // Similar to `new Error().stack`The first line of the trace will be prefixed with ${myObject.name}: ${myObject.message}.
The optional constructorOpt argument accepts a function. If given, all frames above constructorOpt, including constructorOpt, will be omitted from the generated stack trace.
The constructorOpt argument is useful for hiding implementation details of error generation from the user. For instance:
function a() {
b();
}
function b() {
c();
}
function c() {
// Create an error without stack trace to avoid calculating the stack trace twice.
const { stackTraceLimit } = Error;
Error.stackTraceLimit = 0;
const error = new Error();
Error.stackTraceLimit = stackTraceLimit;
// Capture the stack trace above function b
Error.captureStackTrace(error, b); // Neither function c, nor b is included in the stack trace
throw error;
}
a();Parameters
| Parameter | Type |
|---|---|
targetObject | object |
constructorOpt? | Function |
Returns
void
Inherited from
prepareStackTrace()
static prepareStackTrace(err, stackTraces): any;Defined in: node_modules/@types/node/globals.d.ts:56
Parameters
| Parameter | Type |
|---|---|
err | Error |
stackTraces | CallSite[] |
Returns
any
See
https://v8.dev/docs/stack-trace-api#customizing-stack-traces
Inherited from
Scheduler
Defined in: src/scheduler.ts:41
Constructors
Constructor
new Scheduler(opts): Scheduler;Defined in: src/scheduler.ts:52
Parameters
| Parameter | Type |
|---|---|
opts | SchedulerOptions |
Returns
Methods
hasReadyJobs()
hasReadyJobs(): boolean;Defined in: src/scheduler.ts:117
Returns
boolean
onAck()
onAck(jobId): void;Defined in: src/scheduler.ts:106
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
void
onEnqueue()
onEnqueue(
jobId,
tenantId,
timing?): void;Defined in: src/scheduler.ts:84
Parameters
| Parameter | Type |
|---|---|
jobId | string |
tenantId | string | undefined |
timing? | SchedulerEnqueueTiming |
Returns
void
pickNext()
pickNext(): PickedJob | null;Defined in: src/scheduler.ts:127
Returns
PickedJob | null
setWeight()
setWeight(tenantId, weight): void;Defined in: src/scheduler.ts:71
Parameters
| Parameter | Type |
|---|---|
tenantId | string | undefined |
weight | number |
Returns
void
snapshot()
snapshot(): {
inflight: number;
starvationTokens: number;
tenantId: string | undefined;
waiting: number;
weight: number;
}[];Defined in: src/scheduler.ts:160
Returns
{ inflight: number; starvationTokens: number; tenantId: string | undefined; waiting: number; weight: number; }[]
Interfaces
BackendCapabilities
Defined in: src/lifecycle.ts:48
Properties
activationFencing?
optional activationFencing?: boolean;Defined in: src/lifecycle.ts:62
Required by FairWorker: completion is fenced by an opaque activation token.
backoff
backoff: boolean;Defined in: src/lifecycle.ts:53
deadLetter
deadLetter: boolean;Defined in: src/lifecycle.ts:58
delayed
delayed: boolean;Defined in: src/lifecycle.ts:51
distributed
distributed: boolean;Defined in: src/lifecycle.ts:50
durable
durable: boolean;Defined in: src/lifecycle.ts:49
fairness
fairness: "none" | "local-tenant";Defined in: src/lifecycle.ts:59
history
history: boolean;Defined in: src/lifecycle.ts:56
idempotency
idempotency: boolean;Defined in: src/lifecycle.ts:57
manualDrain
manualDrain: boolean;Defined in: src/lifecycle.ts:60
retries
retries: boolean;Defined in: src/lifecycle.ts:52
statusQuery
statusQuery: boolean;Defined in: src/lifecycle.ts:55
timeout
timeout: boolean;Defined in: src/lifecycle.ts:54
BullMQBackendOptions
Defined in: src/backend/bullmq-backend.ts:95
Properties
connection
connection: object;Defined in: src/backend/bullmq-backend.ts:99
BullMQ/ioredis connection object. Kept structural so BullMQ remains an optional peer.
namespace?
optional namespace?: string;Defined in: src/backend/bullmq-backend.ts:97
retention?
optional retention?: RetentionOptions;Defined in: src/backend/bullmq-backend.ts:96
workerConcurrency?
optional workerConcurrency?: number;Defined in: src/backend/bullmq-backend.ts:100
BullMQConsumerOptions
Defined in: src/backend/bullmq-backend.ts:109
Properties
contextRunner
contextRunner: (ctx, fn) => Promise<unknown>;Defined in: src/backend/bullmq-backend.ts:111
Parameters
| Parameter | Type |
|---|---|
ctx | JobContext |
fn | () => Promise<unknown> |
Returns
Promise<unknown>
events?
optional events?: JobEventsOptions;Defined in: src/backend/bullmq-backend.ts:115
onFail?
optional onFail?: (e, err) => void;Defined in: src/backend/bullmq-backend.ts:114
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
err | Error |
Returns
void
onFinish?
optional onFinish?: (e) => void;Defined in: src/backend/bullmq-backend.ts:113
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
Returns
void
onStart?
optional onStart?: (e) => void;Defined in: src/backend/bullmq-backend.ts:112
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
Returns
void
registry
registry: HandlerRegistry;Defined in: src/backend/bullmq-backend.ts:110
BullMQOptions
Defined in: src/jobs.module.ts:268
Properties
backend
backend: BullMQBackend;Defined in: src/jobs.module.ts:273
contextExtractor?
optional contextExtractor?: () => JobContext;Defined in: src/jobs.module.ts:279
Returns
contextRunner?
optional contextRunner?: (ctx, fn) => Promise<unknown>;Defined in: src/jobs.module.ts:280
Parameters
| Parameter | Type |
|---|---|
ctx | JobContext |
fn | () => Promise<unknown> |
Returns
Promise<unknown>
dynamicRegistration?
optional dynamicRegistration?: boolean;Defined in: src/jobs.module.ts:272
Opt out of bootstrap handler checks when registration is intentionally deferred.
events?
optional events?: JobEventsOptions;Defined in: src/jobs.module.ts:278
global?
optional global?: boolean;Defined in: src/jobs.module.ts:276
jobs?
optional jobs?: JobDefinitions;Defined in: src/jobs.module.ts:275
jobTypes
jobTypes: string[];Defined in: src/jobs.module.ts:274
onJobFail?
optional onJobFail?: (e, err) => void;Defined in: src/jobs.module.ts:283
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
err | Error |
Returns
void
onJobFinish?
optional onJobFinish?: (e) => void;Defined in: src/jobs.module.ts:282
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
Returns
void
onJobStart?
optional onJobStart?: (e) => void;Defined in: src/jobs.module.ts:281
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
Returns
void
role?
optional role?: "producer" | "worker" | "both";Defined in: src/jobs.module.ts:270
Default both. Worker role rejects JobsService enqueue. Producer never consumes.
strictCapabilities?
optional strictCapabilities?: boolean;Defined in: src/jobs.module.ts:277
BullMQRawQueue
Defined in: src/backend/bullmq-backend.ts:103
Methods
add()
add(
name,
data,
options?): Promise<{
id?: string | number;
}>;Defined in: src/backend/bullmq-backend.ts:104
Parameters
| Parameter | Type |
|---|---|
name | string |
data | unknown |
options? | unknown |
Returns
Promise<{ id?: string | number; }>
close()
close(): Promise<void>;Defined in: src/backend/bullmq-backend.ts:106
Returns
Promise<void>
getJob()
getJob(jobId): Promise<unknown>;Defined in: src/backend/bullmq-backend.ts:105
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise<unknown>
DeadLetterFilter
Defined in: src/lifecycle.ts:99
Properties
tenantId?
optional tenantId?: string;Defined in: src/lifecycle.ts:101
type?
optional type?: string;Defined in: src/lifecycle.ts:100
DedupeOptions
Defined in: src/types.ts:45
Properties
key
key: string;Defined in: src/types.ts:46
mode?
optional mode?: "while_active" | "until_completed";Defined in: src/types.ts:49
scope?
optional scope?: "global" | "tenant";Defined in: src/types.ts:47
ttlMs?
optional ttlMs?: number;Defined in: src/types.ts:48
EnqueueOptions
Defined in: src/types.ts:52
Type Parameters
| Type Parameter | Default type |
|---|---|
TContext | JobContext |
TMetadata extends object | Record<string, unknown> |
Properties
attempts?
optional attempts?: number;Defined in: src/types.ts:61
backoff?
optional backoff?: BackoffPolicy;Defined in: src/types.ts:62
context?
optional context?: TContext;Defined in: src/types.ts:57
dedupe?
optional dedupe?: DedupeOptions;Defined in: src/types.ts:65
delay?
optional delay?: number;Defined in: src/types.ts:58
delayMs?
optional delayMs?: number;Defined in: src/types.ts:59
idempotencyKey?
optional idempotencyKey?: string;Defined in: src/types.ts:64
jobId?
optional jobId?: string;Defined in: src/types.ts:56
metadata?
optional metadata?: TMetadata;Defined in: src/types.ts:66
scheduledFor?
optional scheduledFor?: Date;Defined in: src/types.ts:60
timeoutMs?
optional timeoutMs?: number;Defined in: src/types.ts:63
EnqueueResult
Defined in: src/lifecycle.ts:93
Properties
existingJobId?
optional existingJobId?: string;Defined in: src/lifecycle.ts:96
jobId
jobId: string;Defined in: src/lifecycle.ts:95
status
status: "created" | "deduped";Defined in: src/lifecycle.ts:94
FairWorkerOptions
Defined in: src/fair-worker.ts:17
Properties
backend
backend: JobsBackend;Defined in: src/fair-worker.ts:19
contextRunner
contextRunner: (ctx, fn) => Promise<unknown>;Defined in: src/fair-worker.ts:22
Parameters
| Parameter | Type |
|---|---|
ctx | JobContext |
fn | () => Promise<unknown> |
Returns
Promise<unknown>
events?
optional events?: JobEventsOptions;Defined in: src/fair-worker.ts:26
jobType
jobType: string;Defined in: src/fair-worker.ts:18
onFail?
optional onFail?: (e, err) => void;Defined in: src/fair-worker.ts:25
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
err | Error |
Returns
void
onFinish?
optional onFinish?: (e) => void;Defined in: src/fair-worker.ts:24
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
Returns
void
onStart?
optional onStart?: (e) => void;Defined in: src/fair-worker.ts:23
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
Returns
void
registry
registry: HandlerRegistry;Defined in: src/fair-worker.ts:21
scheduler
scheduler: Scheduler;Defined in: src/fair-worker.ts:20
FakeJobsOptions
Defined in: src/fake-jobs.service.ts:12
Extends
Omit<Partial<SchedulerOptions>,"clock">
Properties
budget?
optional budget?: ExecutionBudget;Defined in: src/scheduler.ts:11
Inherited from
contextExtractor?
optional contextExtractor?: () => JobContext;Defined in: src/fake-jobs.service.ts:16
Returns
contextRunner?
optional contextRunner?: (ctx, fn) => Promise<unknown>;Defined in: src/fake-jobs.service.ts:17
Parameters
| Parameter | Type |
|---|---|
ctx | JobContext |
fn | () => Promise<unknown> |
Returns
Promise<unknown>
defaultWeight?
optional defaultWeight?: number;Defined in: src/scheduler.ts:6
Inherited from
SchedulerOptions.defaultWeight
jobs?
optional jobs?: JobDefinitions;Defined in: src/fake-jobs.service.ts:14
jobTypes
jobTypes: string[];Defined in: src/fake-jobs.service.ts:13
minSharePct?
optional minSharePct?: number;Defined in: src/scheduler.ts:7
Inherited from
now?
optional now?: string | number | Date;Defined in: src/fake-jobs.service.ts:15
tenantCap?
optional tenantCap?: number;Defined in: src/scheduler.ts:8
Inherited from
typeCap?
optional typeCap?: number;Defined in: src/scheduler.ts:10
Inherited from
InMemoryBackendOptions
Defined in: src/backend/in-memory-backend.ts:52
Properties
deadLetter?
optional deadLetter?: {
enabled?: boolean;
};Defined in: src/backend/in-memory-backend.ts:55
enabled?
optional enabled?: boolean;now?
optional now?: () => Date;Defined in: src/backend/in-memory-backend.ts:54
Returns
Date
retention?
optional retention?: RetentionOptions;Defined in: src/backend/in-memory-backend.ts:53
InMemoryOptions
Defined in: src/jobs.module.ts:247
Properties
concurrency?
optional concurrency?: {
poolSize?: number;
tenantCap?: number;
typeCap?: number;
};Defined in: src/jobs.module.ts:259
Local module-wide invocation limits. Defaults: pool 10, tenant 10, type = pool.
poolSize?
optional poolSize?: number;tenantCap?
optional tenantCap?: number;typeCap?
optional typeCap?: number;contextExtractor?
optional contextExtractor?: () => JobContext;Defined in: src/jobs.module.ts:261
Returns
contextRunner?
optional contextRunner?: (ctx, fn) => Promise<unknown>;Defined in: src/jobs.module.ts:262
Parameters
| Parameter | Type |
|---|---|
ctx | JobContext |
fn | () => Promise<unknown> |
Returns
Promise<unknown>
events?
optional events?: JobEventsOptions;Defined in: src/jobs.module.ts:257
fairness?
optional fairness?: {
defaultWeight?: number;
minSharePct?: number;
};Defined in: src/jobs.module.ts:260
defaultWeight?
optional defaultWeight?: number;minSharePct?
optional minSharePct?: number;global?
optional global?: boolean;Defined in: src/jobs.module.ts:255
jobs?
optional jobs?: JobDefinitions;Defined in: src/jobs.module.ts:254
jobTypes
jobTypes: string[];Defined in: src/jobs.module.ts:253
onJobFail?
optional onJobFail?: (e, err) => void;Defined in: src/jobs.module.ts:265
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
err | Error |
Returns
void
onJobFinish?
optional onJobFinish?: (e) => void;Defined in: src/jobs.module.ts:264
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
Returns
void
onJobStart?
optional onJobStart?: (e) => void;Defined in: src/jobs.module.ts:263
Parameters
| Parameter | Type |
|---|---|
e | JobEvent |
Returns
void
onWorkerError?
optional onWorkerError?: (error) => void;Defined in: src/jobs.module.ts:250
Best-effort observer. Backend operation retries use a 50ms backoff.
Parameters
| Parameter | Type |
|---|---|
error | unknown |
Returns
void
retention?
optional retention?: RetentionOptions;Defined in: src/jobs.module.ts:248
shutdown?
optional shutdown?: {
timeoutMs?: number;
};Defined in: src/jobs.module.ts:252
Graceful drain deadline (default 30 seconds). Timeout rejects; draining continues.
timeoutMs?
optional timeoutMs?: number;strictCapabilities?
optional strictCapabilities?: boolean;Defined in: src/jobs.module.ts:256
JobBuilder
Defined in: src/contracts.ts:29
Type Parameters
| Type Parameter |
|---|
TPayload |
TContext |
TResult |
Properties
__context?
readonly optional __context?: TContext;Defined in: src/contracts.ts:31
__payload?
readonly optional __payload?: TPayload;Defined in: src/contracts.ts:30
__result?
readonly optional __result?: TResult;Defined in: src/contracts.ts:32
Methods
context()
context<TNextContext>(...invalid): JobBuilder<TPayload, TNextContext, TResult>;Defined in: src/contracts.ts:33
Type Parameters
| Type Parameter |
|---|
TNextContext extends object |
Parameters
| Parameter | Type |
|---|---|
...invalid | PlainObjectArguments<TNextContext> |
Returns
JobBuilder<TPayload, TNextContext, TResult>
defaults()
defaults(defaults): JobDefinition<TPayload, TContext, TResult>;Defined in: src/contracts.ts:37
Parameters
| Parameter | Type |
|---|---|
defaults | JobDefaults |
Returns
JobDefinition<TPayload, TContext, TResult>
result()
result<TNextResult>(): JobBuilder<TPayload, TContext, TNextResult>;Defined in: src/contracts.ts:36
Type Parameters
| Type Parameter |
|---|
TNextResult |
Returns
JobBuilder<TPayload, TContext, TNextResult>
JobContext
Defined in: src/types.ts:3
Indexable
[key: string]: unknownProperties
signal?
optional signal?: AbortSignal;Defined in: src/types.ts:5
tenantId?
optional tenantId?: string;Defined in: src/types.ts:4
JobDefaults
Defined in: src/contracts.ts:40
Properties
attempts?
optional attempts?: number;Defined in: src/contracts.ts:41
backoff?
optional backoff?: BackoffPolicy;Defined in: src/contracts.ts:43
timeoutMs?
optional timeoutMs?: number;Defined in: src/contracts.ts:42
JobDefinition
Defined in: src/contracts.ts:22
Type Parameters
| Type Parameter |
|---|
TPayload |
TContext |
TResult |
Properties
__context?
readonly optional __context?: TContext;Defined in: src/contracts.ts:24
__payload?
readonly optional __payload?: TPayload;Defined in: src/contracts.ts:23
__result?
readonly optional __result?: TResult;Defined in: src/contracts.ts:25
defaults
readonly defaults: JobDefaults;Defined in: src/contracts.ts:26
JobEnvelope
Defined in: src/types.ts:9
Type Parameters
| Type Parameter | Default type |
|---|---|
T | unknown |
Properties
activationId?
optional activationId?: string;Defined in: src/types.ts:17
Opaque ownership token returned only by moveToActive.
attempts
attempts: number;Defined in: src/types.ts:15
backoff?
optional backoff?: BackoffPolicy;Defined in: src/types.ts:21
context
context: JobContext;Defined in: src/types.ts:13
dedupeKey?
optional dedupeKey?: string;Defined in: src/types.ts:24
enqueuedAt
enqueuedAt: Date;Defined in: src/types.ts:14
id
id: string;Defined in: src/types.ts:10
idempotencyKey?
optional idempotencyKey?: string;Defined in: src/types.ts:23
jobType
jobType: string;Defined in: src/types.ts:11
maxAttempts
maxAttempts: number;Defined in: src/types.ts:18
metadata
metadata: Record<string, unknown>;Defined in: src/types.ts:22
payload
payload: T;Defined in: src/types.ts:12
scheduledFor?
optional scheduledFor?: Date;Defined in: src/types.ts:19
timeoutMs?
optional timeoutMs?: number;Defined in: src/types.ts:20
JobErrorSummary
Defined in: src/lifecycle.ts:11
Properties
code?
optional code?: string;Defined in: src/lifecycle.ts:14
message
message: string;Defined in: src/lifecycle.ts:13
name?
optional name?: string;Defined in: src/lifecycle.ts:12
reason?
optional reason?: string;Defined in: src/lifecycle.ts:15
JobEvent
Defined in: src/types.ts:35
Properties
attempt?
optional attempt?: number;Defined in: src/types.ts:39
durationMs?
optional durationMs?: number;Defined in: src/types.ts:42
finishedAt?
optional finishedAt?: Date;Defined in: src/types.ts:41
jobId
jobId: string;Defined in: src/types.ts:36
jobType
jobType: string;Defined in: src/types.ts:37
startedAt?
optional startedAt?: Date;Defined in: src/types.ts:40
tenantId
tenantId: string | undefined;Defined in: src/types.ts:38
JobEventsOptions
Defined in: src/lifecycle.ts:89
Properties
onEvent?
optional onEvent?: (event) => void;Defined in: src/lifecycle.ts:90
Parameters
| Parameter | Type |
|---|---|
event | JobLifecycleEvent |
Returns
void
JobHistoryEntry
Defined in: src/lifecycle.ts:38
Properties
at
at: Date;Defined in: src/lifecycle.ts:42
attempt
attempt: number;Defined in: src/lifecycle.ts:41
error?
optional error?: JobErrorSummary;Defined in: src/lifecycle.ts:44
jobId
jobId: string;Defined in: src/lifecycle.ts:39
metadata?
optional metadata?: Record<string, unknown>;Defined in: src/lifecycle.ts:45
reason?
optional reason?: string;Defined in: src/lifecycle.ts:43
status
status: JobStatus;Defined in: src/lifecycle.ts:40
JobInstance
Defined in: src/contracts.ts:70
Type Parameters
| Type Parameter |
|---|
TJobs extends JobDefinitions |
TType extends JobType<TJobs> |
Properties
attempt
attempt: number;Defined in: src/contracts.ts:75
context
context: JobContextOf<TJobs, TType>;Defined in: src/contracts.ts:74
id
id: string;Defined in: src/contracts.ts:71
maxAttempts
maxAttempts: number;Defined in: src/contracts.ts:76
metadata
metadata: Record<string, unknown>;Defined in: src/contracts.ts:78
payload
payload: JobPayload<TJobs, TType>;Defined in: src/contracts.ts:73
signal
signal: AbortSignal;Defined in: src/contracts.ts:77
type
type: TType;Defined in: src/contracts.ts:72
JobLifecycleEvent
Defined in: src/lifecycle.ts:77
Properties
at
at: Date;Defined in: src/lifecycle.ts:83
attempt
attempt: number;Defined in: src/lifecycle.ts:82
durationMs?
optional durationMs?: number;Defined in: src/lifecycle.ts:84
error?
optional error?: JobErrorSummary;Defined in: src/lifecycle.ts:85
jobId
jobId: string;Defined in: src/lifecycle.ts:79
jobType
jobType: string;Defined in: src/lifecycle.ts:80
metadata?
optional metadata?: Record<string, unknown>;Defined in: src/lifecycle.ts:86
tenantId?
optional tenantId?: string;Defined in: src/lifecycle.ts:81
type
type: JobLifecycleEventType;Defined in: src/lifecycle.ts:78
JobRecord
Defined in: src/lifecycle.ts:18
Type Parameters
| Type Parameter | Default type |
|---|---|
TPayload | unknown |
TContext | unknown |
Properties
attempt
attempt: number;Defined in: src/lifecycle.ts:24
completedAt?
optional completedAt?: Date;Defined in: src/lifecycle.ts:29
context?
optional context?: TContext;Defined in: src/lifecycle.ts:23
dedupeKey?
optional dedupeKey?: string;Defined in: src/lifecycle.ts:34
enqueuedAt
enqueuedAt: Date;Defined in: src/lifecycle.ts:26
error?
optional error?: JobErrorSummary;Defined in: src/lifecycle.ts:32
failedAt?
optional failedAt?: Date;Defined in: src/lifecycle.ts:30
id
id: string;Defined in: src/lifecycle.ts:19
idempotencyKey?
optional idempotencyKey?: string;Defined in: src/lifecycle.ts:33
maxAttempts
maxAttempts: number;Defined in: src/lifecycle.ts:25
metadata
metadata: Record<string, unknown>;Defined in: src/lifecycle.ts:35
nextAttemptAt?
optional nextAttemptAt?: Date;Defined in: src/lifecycle.ts:31
payload?
optional payload?: TPayload;Defined in: src/lifecycle.ts:22
scheduledFor?
optional scheduledFor?: Date;Defined in: src/lifecycle.ts:27
startedAt?
optional startedAt?: Date;Defined in: src/lifecycle.ts:28
status
status: JobStatus;Defined in: src/lifecycle.ts:21
type
type: string;Defined in: src/lifecycle.ts:20
JobsBackend
Defined in: src/backend/jobs-backend.interface.ts:13
Methods
ack()
ack(
jobType,
jobId,
activationId): Promise<void | JobRecord<unknown, unknown>>;Defined in: src/backend/jobs-backend.interface.ts:28
Parameters
| Parameter | Type |
|---|---|
jobType | string |
jobId | string |
activationId | string |
Returns
Promise<void | JobRecord<unknown, unknown>>
capabilities()
capabilities(): BackendCapabilities;Defined in: src/backend/jobs-backend.interface.ts:14
Returns
close()
close(): Promise<void>;Defined in: src/backend/jobs-backend.interface.ts:40
Returns
Promise<void>
discardDeadLetter()?
optional discardDeadLetter(jobId, reason?): Promise<void | JobRecord<unknown, unknown>>;Defined in: src/backend/jobs-backend.interface.ts:39
Parameters
| Parameter | Type |
|---|---|
jobId | string |
reason? | string |
Returns
Promise<void | JobRecord<unknown, unknown>>
enqueue()
enqueue(
jobType,
envelope,
opts): Promise<string>;Defined in: src/backend/jobs-backend.interface.ts:15
Parameters
| Parameter | Type |
|---|---|
jobType | string |
envelope | Record<string, unknown> |
opts | EnqueueOptions |
Returns
Promise<string>
enqueueDetailed()?
optional enqueueDetailed(
jobType,
envelope,
opts,
onCommit?): Promise<EnqueueResult>;Defined in: src/backend/jobs-backend.interface.ts:20
Parameters
| Parameter | Type |
|---|---|
jobType | string |
envelope | Record<string, unknown> |
opts | EnqueueOptions |
onCommit? | EnqueueCommitObserver |
Returns
Promise<EnqueueResult>
fail()
fail(
jobType,
jobId,
reason,
activationId): Promise<void | JobRecord<unknown, unknown>>;Defined in: src/backend/jobs-backend.interface.ts:29
Parameters
| Parameter | Type |
|---|---|
jobType | string |
jobId | string |
reason | string |
activationId | string |
Returns
Promise<void | JobRecord<unknown, unknown>>
getJob()
getJob(jobId): Promise<JobRecord<unknown, unknown> | null>;Defined in: src/backend/jobs-backend.interface.ts:35
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise<JobRecord<unknown, unknown> | null>
getJobHistory()
getJobHistory(jobId): Promise<JobHistoryEntry[]>;Defined in: src/backend/jobs-backend.interface.ts:36
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise<JobHistoryEntry[]>
listDeadLetters()?
optional listDeadLetters(filter?): Promise<JobRecord<unknown, unknown>[]>;Defined in: src/backend/jobs-backend.interface.ts:37
Parameters
| Parameter | Type |
|---|---|
filter? | DeadLetterFilter |
Returns
Promise<JobRecord<unknown, unknown>[]>
moveToActive()
moveToActive(
jobType,
jobId,
activationId?): Promise<JobEnvelope<unknown> | null>;Defined in: src/backend/jobs-backend.interface.ts:27
Parameters
| Parameter | Type |
|---|---|
jobType | string |
jobId | string |
activationId? | string |
Returns
Promise<JobEnvelope<unknown> | null>
peekWaiting()
peekWaiting(jobType): Promise<JobEnvelope<unknown>[]>;Defined in: src/backend/jobs-backend.interface.ts:26
Parameters
| Parameter | Type |
|---|---|
jobType | string |
Returns
Promise<JobEnvelope<unknown>[]>
replayDeadLetter()?
optional replayDeadLetter(jobId, options?): Promise<string>;Defined in: src/backend/jobs-backend.interface.ts:38
Parameters
| Parameter | Type |
|---|---|
jobId | string |
options? | ReplayOptions |
Returns
Promise<string>
JobsOutboxBridgeOptions
Defined in: src/outbox/outbox-bridge.module.ts:13
Properties
jobs
jobs: JobsService;Defined in: src/outbox/outbox-bridge.module.ts:14
map
map: Record<string, string>;Defined in: src/outbox/outbox-bridge.module.ts:16
source
source: OutboxSource;Defined in: src/outbox/outbox-bridge.module.ts:15
tenantFrom?
optional tenantFrom?: (event) => string;Defined in: src/outbox/outbox-bridge.module.ts:17
Parameters
| Parameter | Type |
|---|---|
event | OutboxEvent |
Returns
string
JobsServiceDeps
Defined in: src/jobs.service.ts:25
Properties
backend
backend: JobsBackend;Defined in: src/jobs.service.ts:27
contextExtractor?
optional contextExtractor?: () => JobContext;Defined in: src/jobs.service.ts:31
Returns
contextRunner?
optional contextRunner?: (ctx, fn) => Promise<unknown>;Defined in: src/jobs.service.ts:32
Parameters
| Parameter | Type |
|---|---|
ctx | JobContext |
fn | () => Promise<unknown> |
Returns
Promise<unknown>
events?
optional events?: JobEventsOptions;Defined in: src/jobs.service.ts:33
jobs?
optional jobs?: JobDefinitions;Defined in: src/jobs.service.ts:34
jobTypes?
optional jobTypes?: Iterable<string, any, any>;Defined in: src/jobs.service.ts:30
producerEnabled?
optional producerEnabled?: boolean;Defined in: src/jobs.service.ts:26
registry
registry: HandlerRegistry;Defined in: src/jobs.service.ts:28
schedulers?
optional schedulers?: Map<string, Scheduler>;Defined in: src/jobs.service.ts:29
OutboxEvent
Defined in: src/outbox/outbox-bridge.module.ts:3
Properties
payload
payload: Record<string, unknown>;Defined in: src/outbox/outbox-bridge.module.ts:5
tenantId
tenantId: string;Defined in: src/outbox/outbox-bridge.module.ts:6
type
type: string;Defined in: src/outbox/outbox-bridge.module.ts:4
OutboxJobsPublisherOptions
Defined in: src/outbox/outbox-jobs-publisher.ts:40
Properties
map
map: Record<string, string | OutboxJobTarget>;Defined in: src/outbox/outbox-jobs-publisher.ts:41
unmapped?
optional unmapped?: "error" | "ignore";Defined in: src/outbox/outbox-jobs-publisher.ts:42
OutboxJobTarget
Defined in: src/outbox/outbox-jobs-publisher.ts:33
Properties
job
job: string;Defined in: src/outbox/outbox-jobs-publisher.ts:34
options?
optional options?:
| EnqueueOptions<JobContext, Record<string, unknown>>
| ((record) => EnqueueOptions);Defined in: src/outbox/outbox-jobs-publisher.ts:36
payload?
optional payload?: (record) => Record<string, unknown>;Defined in: src/outbox/outbox-jobs-publisher.ts:35
Parameters
| Parameter | Type |
|---|---|
record | OutboxRecord |
Returns
Record<string, unknown>
tenant?
optional tenant?: "required" | "optional" | ((record) => string | undefined);Defined in: src/outbox/outbox-jobs-publisher.ts:37
OutboxPublisher
Defined in: src/outbox/outbox-jobs-publisher.ts:29
Methods
publish()
publish(record): Promise<void>;Defined in: src/outbox/outbox-jobs-publisher.ts:30
Parameters
| Parameter | Type |
|---|---|
record | OutboxRecord |
Returns
Promise<void>
OutboxRecord
Defined in: src/outbox/outbox-jobs-publisher.ts:7
Properties
aggregateId?
optional aggregateId?: string | null;Defined in: src/outbox/outbox-jobs-publisher.ts:20
aggregateType?
optional aggregateType?: string | null;Defined in: src/outbox/outbox-jobs-publisher.ts:19
causationId?
optional causationId?: string | null;Defined in: src/outbox/outbox-jobs-publisher.ts:24
correlationId?
optional correlationId?: string | null;Defined in: src/outbox/outbox-jobs-publisher.ts:23
createdAt?
optional createdAt?: Date;Defined in: src/outbox/outbox-jobs-publisher.ts:12
eventType
eventType: string;Defined in: src/outbox/outbox-jobs-publisher.ts:9
headers?
optional headers?: Record<string, unknown> | null;Defined in: src/outbox/outbox-jobs-publisher.ts:25
id
id: string;Defined in: src/outbox/outbox-jobs-publisher.ts:8
idempotencyKey?
optional idempotencyKey?: string | null;Defined in: src/outbox/outbox-jobs-publisher.ts:22
lastError?
optional lastError?: string | null;Defined in: src/outbox/outbox-jobs-publisher.ts:17
maxRetries?
optional maxRetries?: number;Defined in: src/outbox/outbox-jobs-publisher.ts:16
occurredAt?
optional occurredAt?: string | Date | null;Defined in: src/outbox/outbox-jobs-publisher.ts:26
partitionKey?
optional partitionKey?: string | null;Defined in: src/outbox/outbox-jobs-publisher.ts:21
payload
payload: Record<string, unknown>;Defined in: src/outbox/outbox-jobs-publisher.ts:10
processedAt?
optional processedAt?: Date | null;Defined in: src/outbox/outbox-jobs-publisher.ts:14
retryCount?
optional retryCount?: number;Defined in: src/outbox/outbox-jobs-publisher.ts:15
status?
optional status?: "PENDING" | "PROCESSING" | "SENT" | "FAILED";Defined in: src/outbox/outbox-jobs-publisher.ts:11
tenantId?
optional tenantId?: string | null;Defined in: src/outbox/outbox-jobs-publisher.ts:18
updatedAt?
optional updatedAt?: Date;Defined in: src/outbox/outbox-jobs-publisher.ts:13
OutboxSource
Defined in: src/outbox/outbox-bridge.module.ts:9
Methods
onEvent()
onEvent(cb): void;Defined in: src/outbox/outbox-bridge.module.ts:10
Parameters
| Parameter | Type |
|---|---|
cb | (event) => Promise<void> |
Returns
void
PickedJob
Defined in: src/scheduler.ts:36
Properties
jobId
jobId: string;Defined in: src/scheduler.ts:37
tenantId
tenantId: string | undefined;Defined in: src/scheduler.ts:38
ReplayOptions
Defined in: src/lifecycle.ts:104
Properties
metadata?
optional metadata?: Record<string, unknown>;Defined in: src/lifecycle.ts:107
preserveOriginalId?
optional preserveOriginalId?: boolean;Defined in: src/lifecycle.ts:105
resetAttempts?
optional resetAttempts?: boolean;Defined in: src/lifecycle.ts:106
RetentionCleanupOptions
Defined in: src/retention.ts:12
Properties
producersStopped
producersStopped: true;Defined in: src/retention.ts:14
All producers and administrative retry/replay writers must be stopped first.
RetentionOptions
Defined in: src/retention.ts:4
Opt-in, operator-driven cleanup. The age is a safety floor even under count pressure.
Properties
batchSize?
optional batchSize?: number;Defined in: src/retention.ts:7
Maximum records removed per queue and call (default 1000).
recoveryHorizonMs
recoveryHorizonMs: number;Defined in: src/retention.ts:9
Longest Outbox retry + manual recovery horizon for this deployment.
terminalAgeMs
terminalAgeMs: number;Defined in: src/retention.ts:5
RetryPolicy
Defined in: src/retry.ts:6
Properties
attempts?
optional attempts?: number;Defined in: src/retry.ts:7
backoff?
optional backoff?: BackoffPolicy;Defined in: src/retry.ts:8
SchedulerEnqueueTiming
Defined in: src/scheduler.ts:14
Properties
delayMs?
optional delayMs?: number;Defined in: src/scheduler.ts:16
scheduledFor?
optional scheduledFor?: Date;Defined in: src/scheduler.ts:15
SchedulerOptions
Defined in: src/scheduler.ts:5
Properties
budget?
optional budget?: ExecutionBudget;Defined in: src/scheduler.ts:11
clock?
optional clock?: () => Date;Defined in: src/scheduler.ts:9
Returns
Date
defaultWeight
defaultWeight: number;Defined in: src/scheduler.ts:6
minSharePct
minSharePct: number;Defined in: src/scheduler.ts:7
tenantCap
tenantCap: number;Defined in: src/scheduler.ts:8
typeCap?
optional typeCap?: number;Defined in: src/scheduler.ts:10
ShardSnapshot
Defined in: src/types.ts:27
Properties
inflight
inflight: number;Defined in: src/types.ts:30
starvationTokens
starvationTokens: number;Defined in: src/types.ts:32
tenantId
tenantId: string | undefined;Defined in: src/types.ts:28
waiting
waiting: number;Defined in: src/types.ts:29
weight
weight: number;Defined in: src/types.ts:31
TypedJobHandler
Defined in: src/contracts.ts:81
Type Parameters
| Type Parameter |
|---|
TJobs extends JobDefinitions |
TType extends JobType<TJobs> |
Methods
handle()
handle(payload, context): Promise<JobResult<TJobs, TType>>;Defined in: src/contracts.ts:82
Parameters
| Parameter | Type |
|---|---|
payload | JobPayload<TJobs, TType> |
context | JobContextOf<TJobs, TType> |
Returns
Promise<JobResult<TJobs, TType>>
TypedJobsService
Defined in: src/contracts.ts:88
Type Parameters
| Type Parameter |
|---|
TJobs extends JobDefinitions |
Methods
capabilities()
capabilities(): BackendCapabilities;Defined in: src/contracts.ts:106
Returns
discardDeadLetter()
discardDeadLetter(jobId, reason?): Promise<void>;Defined in: src/contracts.ts:109
Parameters
| Parameter | Type |
|---|---|
jobId | string |
reason? | string |
Returns
Promise<void>
enqueue()
enqueue<TType>(
type,
payload,
options?): Promise<string>;Defined in: src/contracts.ts:89
Type Parameters
| Type Parameter |
|---|
TType extends string |
Parameters
| Parameter | Type |
|---|---|
type | TType |
payload | JobPayload<TJobs, TType> |
options? | EnqueueOptions<DeclaredJobContext<TJobs, TType>, object> |
Returns
Promise<string>
enqueueDetailed()
enqueueDetailed<TType>(
type,
payload,
options?): Promise<EnqueueResult>;Defined in: src/contracts.ts:95
Type Parameters
| Type Parameter |
|---|
TType extends string |
Parameters
| Parameter | Type |
|---|---|
type | TType |
payload | JobPayload<TJobs, TType> |
options? | EnqueueOptions<DeclaredJobContext<TJobs, TType>, object> |
Returns
Promise<EnqueueResult>
getJob()
getJob<TType>(jobId): Promise<
| JobRecord<JobPayload<TJobs, TType>, JobContextOf<TJobs, TType>>
| null>;Defined in: src/contracts.ts:101
Type Parameters
| Type Parameter | Default type |
|---|---|
TType extends string | Extract<keyof TJobs, string> |
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise< | JobRecord<JobPayload<TJobs, TType>, JobContextOf<TJobs, TType>> | null>
getJobHistory()
getJobHistory(jobId): Promise<JobHistoryEntry[]>;Defined in: src/contracts.ts:105
Parameters
| Parameter | Type |
|---|---|
jobId | string |
Returns
Promise<JobHistoryEntry[]>
listDeadLetters()
listDeadLetters(filter?): Promise<JobRecord<unknown, unknown>[]>;Defined in: src/contracts.ts:107
Parameters
| Parameter | Type |
|---|---|
filter? | DeadLetterFilter |
Returns
Promise<JobRecord<unknown, unknown>[]>
replayDeadLetter()
replayDeadLetter(jobId, options?): Promise<string>;Defined in: src/contracts.ts:108
Parameters
| Parameter | Type |
|---|---|
jobId | string |
options? | ReplayOptions |
Returns
Promise<string>
Type Aliases
AnyJobDefinition
type AnyJobDefinition =
| JobBuilder<unknown, unknown, unknown>
| JobDefinition<unknown, unknown, unknown>;Defined in: src/contracts.ts:18
BackoffPolicy
type BackoffPolicy =
| {
delayMs: number;
jitter?: number;
type: "fixed";
}
| {
delayMs: number;
jitter?: number;
maxDelayMs?: number;
type: "exponential";
};Defined in: src/retry.ts:2
EmptyJobPayload
type EmptyJobPayload = Record<string, never>;Defined in: src/contracts.ts:14
EnqueueCommitObserver
type EnqueueCommitObserver = (result) => void;Defined in: src/backend/jobs-backend.interface.ts:11
Parameters
| Parameter | Type |
|---|---|
result | EnqueueResult |
Returns
void
HandlerFn
type HandlerFn = (payload, context) => Promise<unknown>;Defined in: src/handler-registry.ts:4
Parameters
| Parameter | Type |
|---|---|
payload | Record<string, unknown> |
context | JobContext |
Returns
Promise<unknown>
JobContextOf
type JobContextOf<TJobs, TType> = TJobs[TType] extends {
__context?: infer TContext;
} ? TContext & JobContext : JobContext;Defined in: src/contracts.ts:53
Type Parameters
| Type Parameter |
|---|
TJobs extends JobDefinitions |
TType extends JobType<TJobs> |
JobDefinitions
type JobDefinitions = Record<string, AnyJobDefinition>;Defined in: src/contracts.ts:16
JobLifecycleEventType
type JobLifecycleEventType =
| "job.enqueued"
| "job.started"
| "job.timed_out"
| "job.succeeded"
| "job.failed"
| "job.retry_scheduled"
| "job.dead_lettered"
| "job.cancelled"
| "job.discarded"
| "job.replayed";Defined in: src/lifecycle.ts:65
JobPayload
type JobPayload<TJobs, TType> = TJobs[TType] extends {
__payload?: infer TPayload;
} ? TPayload & object : never;Defined in: src/contracts.ts:48
Type Parameters
| Type Parameter |
|---|
TJobs extends JobDefinitions |
TType extends JobType<TJobs> |
JobResult
type JobResult<TJobs, TType> = TJobs[TType] extends {
__result?: infer TResult;
} ? TResult : unknown;Defined in: src/contracts.ts:65
Type Parameters
| Type Parameter |
|---|
TJobs extends JobDefinitions |
TType extends JobType<TJobs> |
JobsErrorCode
type JobsErrorCode = typeof JobsErrorCode[keyof typeof JobsErrorCode];Defined in: src/errors.ts:1
JobStatus
type JobStatus =
| "queued"
| "delayed"
| "active"
| "succeeded"
| "failed"
| "retrying"
| "dead_letter"
| "cancelled";Defined in: src/lifecycle.ts:1
JobType
type JobType<TJobs> = Extract<keyof TJobs, string>;Defined in: src/contracts.ts:46
Type Parameters
| Type Parameter |
|---|
TJobs extends JobDefinitions |
Variables
CONTEXT_KEY
const CONTEXT_KEY: "__nestarcCtx" = '__nestarcCtx';Defined in: src/context-serializer.ts:6
INTERNAL_JOB_KEY
const INTERNAL_JOB_KEY: "__nestarcJob" = '__nestarcJob';Defined in: src/context-serializer.ts:7
JOB_HANDLER_METADATA
const JOB_HANDLER_METADATA: "nestarc:jobs:handler" = 'nestarc:jobs:handler';Defined in: src/decorators/job-handler.decorator.ts:3
JOBS_BACKEND
const JOBS_BACKEND: typeof JOBS_BACKEND;Defined in: src/jobs.module.ts:32
JOBS_SERVICE
const JOBS_SERVICE: typeof JOBS_SERVICE;Defined in: src/contracts.ts:12
JOBS_WORKERS
const JOBS_WORKERS: typeof JOBS_WORKERS;Defined in: src/jobs.module.ts:33
JobsErrorCode
const JobsErrorCode: {
ActivationConflict: "jobs_activation_conflict";
BackendClosed: "jobs_backend_closed";
CapabilityUnsupported: "jobs_capability_unsupported";
DrainLimitExceeded: "jobs_drain_limit_exceeded";
FairnessMisconfig: "jobs_fairness_misconfig";
HandlerNotFound: "jobs_handler_not_found";
IdentityConflict: "jobs_identity_conflict";
InvalidInput: "jobs_invalid_input";
QueueNotFound: "jobs_queue_not_found";
ReservedPayloadKey: "jobs_reserved_payload_key";
SerializationInvalid: "jobs_serialization_invalid";
ShutdownIncomplete: "jobs_shutdown_incomplete";
};Defined in: src/errors.ts:1
Type Declaration
| Name | Type | Default value | Defined in |
|---|---|---|---|
ActivationConflict | "jobs_activation_conflict" | 'jobs_activation_conflict' | src/errors.ts:11 |
BackendClosed | "jobs_backend_closed" | 'jobs_backend_closed' | src/errors.ts:10 |
CapabilityUnsupported | "jobs_capability_unsupported" | 'jobs_capability_unsupported' | src/errors.ts:9 |
DrainLimitExceeded | "jobs_drain_limit_exceeded" | 'jobs_drain_limit_exceeded' | src/errors.ts:2 |
FairnessMisconfig | "jobs_fairness_misconfig" | 'jobs_fairness_misconfig' | src/errors.ts:8 |
HandlerNotFound | "jobs_handler_not_found" | 'jobs_handler_not_found' | src/errors.ts:6 |
IdentityConflict | "jobs_identity_conflict" | 'jobs_identity_conflict' | src/errors.ts:13 |
InvalidInput | "jobs_invalid_input" | 'jobs_invalid_input' | src/errors.ts:3 |
QueueNotFound | "jobs_queue_not_found" | 'jobs_queue_not_found' | src/errors.ts:7 |
ReservedPayloadKey | "jobs_reserved_payload_key" | 'jobs_reserved_payload_key' | src/errors.ts:5 |
SerializationInvalid | "jobs_serialization_invalid" | 'jobs_serialization_invalid' | src/errors.ts:4 |
ShutdownIncomplete | "jobs_shutdown_incomplete" | 'jobs_shutdown_incomplete' | src/errors.ts:12 |
Functions
attachContext()
function attachContext<T>(payload, context): T & {
__nestarcCtx: JobContext;
};Defined in: src/context-serializer.ts:9
Type Parameters
| Type Parameter |
|---|
T extends Record<string, unknown> |
Parameters
| Parameter | Type |
|---|---|
payload | T |
context | JobContext | undefined |
Returns
T & { __nestarcCtx: JobContext; }
computeBackoffDelayMs()
function computeBackoffDelayMs(policy, attempt): number;Defined in: src/retry.ts:11
Parameters
| Parameter | Type |
|---|---|
policy | BackoffPolicy | undefined |
attempt | number |
Returns
number
createFakeJobs()
function createFakeJobs(opts): FakeJobsService;Defined in: src/fake-jobs.service.ts:83
Parameters
| Parameter | Type |
|---|---|
opts | FakeJobsOptions |
Returns
createOutboxJobsPublisher()
function createOutboxJobsPublisher(publisherOptions): Type<OutboxPublisher>;Defined in: src/outbox/outbox-jobs-publisher.ts:50
Creates an OutboxPublisher-compatible Nest provider for use as OutboxModule.forRoot({ transport: createOutboxJobsPublisher(...), delivery: { mode: 'publisher' } }).
Parameters
| Parameter | Type |
|---|---|
publisherOptions | OutboxJobsPublisherOptions |
Returns
Type<OutboxPublisher>
defineJobs()
function defineJobs<TJobs>(definitions): TJobs;Defined in: src/contracts.ts:141
Type Parameters
| Type Parameter |
|---|
TJobs extends JobDefinitions |
Parameters
| Parameter | Type |
|---|---|
definitions | TJobs |
Returns
TJobs
detachContext()
function detachContext<T>(envelope): {
context: JobContext;
payload: Omit<T, typeof CONTEXT_KEY>;
};Defined in: src/context-serializer.ts:29
Type Parameters
| Type Parameter |
|---|
T extends Record<string, unknown> |
Parameters
| Parameter | Type |
|---|---|
envelope | T |
Returns
{
context: JobContext;
payload: Omit<T, typeof CONTEXT_KEY>;
}| Name | Type | Defined in |
|---|---|---|
context | JobContext | src/context-serializer.ts:31 |
payload | Omit<T, typeof CONTEXT_KEY> | src/context-serializer.ts:31 |
InjectJobs()
function InjectJobs(): PropertyDecorator & ParameterDecorator;Defined in: src/contracts.ts:145
Returns
PropertyDecorator & ParameterDecorator
job()
function job<TPayload>(..._invalid): JobBuilder<TPayload, JobContext, unknown>;Defined in: src/contracts.ts:135
Type Parameters
| Type Parameter |
|---|
TPayload extends object |
Parameters
| Parameter | Type |
|---|---|
..._invalid | PlainObjectArguments<TPayload> |
Returns
JobBuilder<TPayload, JobContext, unknown>
JobHandler()
function JobHandler(jobType): MethodDecorator;Defined in: src/decorators/job-handler.decorator.ts:5
Parameters
| Parameter | Type |
|---|---|
jobType | string |
Returns
MethodDecorator