Skip to content

@nestarc/jobs

Classes

BullMQBackend

Defined in: src/backend/bullmq-backend.ts:140

Implements

Constructors

Constructor
ts
new BullMQBackend(opts): BullMQBackend;

Defined in: src/backend/bullmq-backend.ts:151

Parameters
ParameterType
optsBullMQBackendOptions
Returns

BullMQBackend

Methods

ack()
ts
ack(_jobType?, _jobId?): Promise<void>;

Defined in: src/backend/bullmq-backend.ts:443

Parameters
ParameterType
_jobType?string
_jobId?string
Returns

Promise<void>

Implementation of

JobsBackend.ack

capabilities()
ts
capabilities(): BackendCapabilities;

Defined in: src/backend/bullmq-backend.ts:158

Returns

BackendCapabilities

Implementation of

JobsBackend.capabilities

close()
ts
close(): Promise<void>;

Defined in: src/backend/bullmq-backend.ts:486

Returns

Promise<void>

Implementation of

JobsBackend.close

enqueue()
ts
enqueue(
   jobType,
   envelope,
opts): Promise<string>;

Defined in: src/backend/bullmq-backend.ts:179

Parameters
ParameterType
jobTypestring
envelopeRecord<string, unknown>
optsEnqueueOptions
Returns

Promise<string>

Implementation of

JobsBackend.enqueue

enqueueDetailed()
ts
enqueueDetailed(
   jobType,
   envelope,
   opts,
onCommit?): Promise<EnqueueResult>;

Defined in: src/backend/bullmq-backend.ts:187

Parameters
ParameterType
jobTypestring
envelopeRecord<string, unknown>
optsEnqueueOptions
onCommit?EnqueueCommitObserver
Returns

Promise<EnqueueResult>

Implementation of

JobsBackend.enqueueDetailed

fail()
ts
fail(
   _jobType?,
   _jobId?,
_reason?): Promise<void>;

Defined in: src/backend/bullmq-backend.ts:447

Parameters
ParameterType
_jobType?string
_jobId?string
_reason?string
Returns

Promise<void>

Implementation of

JobsBackend.fail

getJob()
ts
getJob(jobId): Promise<JobRecord<unknown, unknown> | null>;

Defined in: src/backend/bullmq-backend.ts:392

Parameters
ParameterType
jobIdstring
Returns

Promise<JobRecord<unknown, unknown> | null>

Implementation of

JobsBackend.getJob

getJobHistory()
ts
getJobHistory(_jobId): Promise<JobHistoryEntry[]>;

Defined in: src/backend/bullmq-backend.ts:431

Parameters
ParameterType
_jobIdstring
Returns

Promise<JobHistoryEntry[]>

Implementation of

JobsBackend.getJobHistory

getRawQueue()
ts
getRawQueue<TQueue>(jobType): TQueue;

Defined in: src/backend/bullmq-backend.ts:498

Type Parameters
Type ParameterDefault type
TQueueBullMQRawQueue
Parameters
ParameterType
jobTypestring
Returns

TQueue

moveToActive()
ts
moveToActive(_jobType?, _jobId?): Promise<JobEnvelope<unknown> | null>;

Defined in: src/backend/bullmq-backend.ts:439

Parameters
ParameterType
_jobType?string
_jobId?string
Returns

Promise<JobEnvelope<unknown> | null>

Implementation of

JobsBackend.moveToActive

peekWaiting()
ts
peekWaiting(_jobType?): Promise<JobEnvelope<unknown>[]>;

Defined in: src/backend/bullmq-backend.ts:435

Parameters
ParameterType
_jobType?string
Returns

Promise<JobEnvelope<unknown>[]>

Implementation of

JobsBackend.peekWaiting

registerJobTypes()
ts
registerJobTypes(jobTypes): void;

Defined in: src/backend/bullmq-backend.ts:175

Parameters
ParameterType
jobTypesIterable<string>
Returns

void

startConsumer()
ts
startConsumer(jobTypes, consumer): void;

Defined in: src/backend/bullmq-backend.ts:451

Parameters
ParameterType
jobTypesstring[]
consumerBullMQConsumerOptions
Returns

void


FairWorker

Defined in: src/fair-worker.ts:25

Constructors

Constructor
ts
new FairWorker(opts): FairWorker;

Defined in: src/fair-worker.ts:26

Parameters
ParameterType
optsFairWorkerOptions
Returns

FairWorker

Methods

tick()
ts
tick(): Promise<boolean>;

Defined in: src/fair-worker.ts:28

Returns

Promise<boolean>


FakeClock

Defined in: src/fake-clock.ts:1

Constructors

Constructor
ts
new FakeClock(now?): FakeClock;

Defined in: src/fake-clock.ts:4

Parameters
ParameterType
nowstring | number | Date
Returns

FakeClock

Methods

advanceBy()
ts
advanceBy(ms): Date;

Defined in: src/fake-clock.ts:12

Parameters
ParameterType
msnumber
Returns

Date

now()
ts
now(): Date;

Defined in: src/fake-clock.ts:8

Returns

Date

set()
ts
set(next): Date;

Defined in: src/fake-clock.ts:17

Parameters
ParameterType
nextstring | number | Date
Returns

Date


FakeJobsService

Defined in: src/fake-jobs.service.ts:18

Constructors

Constructor
ts
new FakeJobsService(opts): FakeJobsService;

Defined in: src/fake-jobs.service.ts:26

Parameters
ParameterType
optsFakeJobsOptions
Returns

FakeJobsService

Properties

backend
ts
readonly backend: InMemoryBackend;

Defined in: src/fake-jobs.service.ts:22

clock
ts
readonly clock: FakeClock;

Defined in: src/fake-jobs.service.ts:21

registry
ts
readonly registry: HandlerRegistry;

Defined in: src/fake-jobs.service.ts:20

schedulers
ts
readonly schedulers: Map<string, Scheduler>;

Defined in: src/fake-jobs.service.ts:23

service
ts
readonly service: JobsService;

Defined in: src/fake-jobs.service.ts:19

Methods

drain()
ts
drain(maxIterations?): Promise<void>;

Defined in: src/fake-jobs.service.ts:59

Parameters
ParameterTypeDefault value
maxIterationsnumber1000
Returns

Promise<void>

drainUntilIdle()
ts
drainUntilIdle(maxIterations?): Promise<void>;

Defined in: src/fake-jobs.service.ts:63

Parameters
ParameterTypeDefault value
maxIterationsnumber1000
Returns

Promise<void>


HandlerRegistry

Defined in: src/handler-registry.ts:6

Constructors

Constructor
ts
new HandlerRegistry(): HandlerRegistry;
Returns

HandlerRegistry

Methods

invoke()
ts
invoke(
   jobType,
   payload,
context): Promise<unknown>;

Defined in: src/handler-registry.ts:16

Parameters
ParameterType
jobTypestring
payloadRecord<string, unknown>
contextJobContext
Returns

Promise<unknown>

list()
ts
list(): string[];

Defined in: src/handler-registry.ts:26

Returns

string[]

register()
ts
register(jobType, handler): void;

Defined in: src/handler-registry.ts:9

Parameters
ParameterType
jobTypestring
handlerHandlerFn
Returns

void


InMemoryBackend

Defined in: src/backend/in-memory-backend.ts:49

Implements

Constructors

Constructor
ts
new InMemoryBackend(opts?): InMemoryBackend;

Defined in: src/backend/in-memory-backend.ts:56

Parameters
ParameterType
optsInMemoryBackendOptions
Returns

InMemoryBackend

Methods

ack()
ts
ack(jobType, jobId): Promise<void | JobRecord<unknown, unknown>>;

Defined in: src/backend/in-memory-backend.ts:181

Parameters
ParameterType
jobTypestring
jobIdstring
Returns

Promise<void | JobRecord<unknown, unknown>>

Implementation of

JobsBackend.ack

capabilities()
ts
capabilities(): BackendCapabilities;

Defined in: src/backend/in-memory-backend.ts:58

Returns

BackendCapabilities

Implementation of

JobsBackend.capabilities

close()
ts
close(): Promise<void>;

Defined in: src/backend/in-memory-backend.ts:343

Returns

Promise<void>

Implementation of

JobsBackend.close

discardDeadLetter()
ts
discardDeadLetter(jobId, reason?): Promise<void | JobRecord<unknown, unknown>>;

Defined in: src/backend/in-memory-backend.ts:330

Parameters
ParameterTypeDefault value
jobIdstringundefined
reasonstring'discarded'
Returns

Promise<void | JobRecord<unknown, unknown>>

Implementation of

JobsBackend.discardDeadLetter

enqueue()
ts
enqueue(
   jobType,
   envelope,
opts): Promise<string>;

Defined in: src/backend/in-memory-backend.ts:75

Parameters
ParameterType
jobTypestring
envelopeRecord<string, unknown>
optsEnqueueOptions
Returns

Promise<string>

Implementation of

JobsBackend.enqueue

enqueueDetailed()
ts
enqueueDetailed(
   jobType,
   envelope,
   opts,
onCommit?): Promise<EnqueueResult>;

Defined in: src/backend/in-memory-backend.ts:83

Parameters
ParameterType
jobTypestring
envelopeRecord<string, unknown>
optsEnqueueOptions
onCommit?EnqueueCommitObserver
Returns

Promise<EnqueueResult>

Implementation of

JobsBackend.enqueueDetailed

fail()
ts
fail(
   jobType,
   jobId,
reason): Promise<void | JobRecord<unknown, unknown>>;

Defined in: src/backend/in-memory-backend.ts:197

Parameters
ParameterType
jobTypestring
jobIdstring
reasonstring
Returns

Promise<void | JobRecord<unknown, unknown>>

Implementation of

JobsBackend.fail

getJob()
ts
getJob(jobId): Promise<JobRecord<unknown, unknown> | null>;

Defined in: src/backend/in-memory-backend.ts:251

Parameters
ParameterType
jobIdstring
Returns

Promise<JobRecord<unknown, unknown> | null>

Implementation of

JobsBackend.getJob

getJobHistory()
ts
getJobHistory(jobId): Promise<JobHistoryEntry[]>;

Defined in: src/backend/in-memory-backend.ts:256

Parameters
ParameterType
jobIdstring
Returns

Promise<JobHistoryEntry[]>

Implementation of

JobsBackend.getJobHistory

listDeadLetters()
ts
listDeadLetters(filter?): Promise<JobRecord<unknown, unknown>[]>;

Defined in: src/backend/in-memory-backend.ts:260

Parameters
ParameterType
filterDeadLetterFilter
Returns

Promise<JobRecord<unknown, unknown>[]>

Implementation of

JobsBackend.listDeadLetters

markCancelled()
ts
markCancelled(
   jobType,
   jobId,
reason?): Promise<JobRecord<unknown, unknown> | null>;

Defined in: src/backend/in-memory-backend.ts:234

Parameters
ParameterTypeDefault value
jobTypestringundefined
jobIdstringundefined
reasonstring'cancelled'
Returns

Promise<JobRecord<unknown, unknown> | null>

markFailed()
ts
markFailed(
   jobType,
   jobId,
   reason,
error?): Promise<JobRecord<unknown, unknown> | null>;

Defined in: src/backend/in-memory-backend.ts:202

Parameters
ParameterType
jobTypestring
jobIdstring
reasonstring
error?JobErrorSummary
Returns

Promise<JobRecord<unknown, unknown> | null>

moveToActive()
ts
moveToActive(jobType, jobId): Promise<JobEnvelope<unknown> | null>;

Defined in: src/backend/in-memory-backend.ts:169

Parameters
ParameterType
jobTypestring
jobIdstring
Returns

Promise<JobEnvelope<unknown> | null>

Implementation of

JobsBackend.moveToActive

peekWaiting()
ts
peekWaiting(jobType): Promise<JobEnvelope<unknown>[]>;

Defined in: src/backend/in-memory-backend.ts:163

Parameters
ParameterType
jobTypestring
Returns

Promise<JobEnvelope<unknown>[]>

Implementation of

JobsBackend.peekWaiting

replayDeadLetter()
ts
replayDeadLetter(jobId, options?): Promise<string>;

Defined in: src/backend/in-memory-backend.ts:275

Parameters
ParameterType
jobIdstring
optionsReplayOptions
Returns

Promise<string>

Implementation of

JobsBackend.replayDeadLetter


JobsError

Defined in: src/errors.ts:13

Extends

  • Error

Constructors

Constructor
ts
new JobsError(code, reason?): JobsError;

Defined in: src/errors.ts:16

Parameters
ParameterType
codeJobsErrorCode
reason?string
Returns

JobsError

Overrides
ts
Error.constructor

Properties

cause?
ts
optional cause?: unknown;

Defined in: node_modules/typescript/lib/lib.es2022.error.d.ts:26

Inherited from
ts
Error.cause

code
ts
readonly code: JobsErrorCode;

Defined in: src/errors.ts:14

message
ts
message: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1077

Inherited from
ts
Error.message

name
ts
name: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1076

Inherited from
ts
Error.name

stack?
ts
optional stack?: string;

Defined in: node_modules/typescript/lib/lib.es5.d.ts:1078

Inherited from
ts
Error.stack

stackTraceLimit
ts
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
ts
Error.stackTraceLimit

Methods

captureStackTrace()
ts
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.

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

js
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
ParameterType
targetObjectobject
constructorOpt?Function
Returns

void

Inherited from
ts
Error.captureStackTrace

prepareStackTrace()
ts
static prepareStackTrace(err, stackTraces): any;

Defined in: node_modules/@types/node/globals.d.ts:56

Parameters
ParameterType
errError
stackTracesCallSite[]
Returns

any

See

https://v8.dev/docs/stack-trace-api#customizing-stack-traces

Inherited from
ts
Error.prepareStackTrace

JobsModule

Defined in: src/jobs.module.ts:186

Constructors

Constructor
ts
new JobsModule(): JobsModule;
Returns

JobsModule

Methods

forBullMQ()
ts
static forBullMQ(options): DynamicModule;

Defined in: src/jobs.module.ts:261

Parameters
ParameterType
optionsBullMQOptions
Returns

DynamicModule

forInMemory()
ts
static forInMemory(options): DynamicModule;

Defined in: src/jobs.module.ts:187

Parameters
ParameterType
optionsInMemoryOptions
Returns

DynamicModule


JobsOutboxBridge

Defined in: src/outbox/outbox-bridge.module.ts:20

Constructors

Constructor
ts
new JobsOutboxBridge(opts): JobsOutboxBridge;

Defined in: src/outbox/outbox-bridge.module.ts:21

Parameters
ParameterType
optsJobsOutboxBridgeOptions
Returns

JobsOutboxBridge


JobsService

Defined in: src/jobs.service.ts:31

Constructors

Constructor
ts
new JobsService(deps): JobsService;

Defined in: src/jobs.service.ts:35

Parameters
ParameterType
depsJobsServiceDeps
Returns

JobsService

Methods

capabilities()
ts
capabilities(): BackendCapabilities;

Defined in: src/jobs.service.ts:101

Returns

BackendCapabilities

discardDeadLetter()
ts
discardDeadLetter(jobId, reason?): Promise<void>;

Defined in: src/jobs.service.ts:216

Parameters
ParameterType
jobIdstring
reason?string
Returns

Promise<void>

enqueue()
ts
enqueue(
   jobType,
   payload,
opts?): Promise<string>;

Defined in: src/jobs.service.ts:40

Parameters
ParameterType
jobTypestring
payloadobject
optsEnqueueOptions<object, object>
Returns

Promise<string>

enqueueDetailed()
ts
enqueueDetailed(
   jobType,
   payload,
opts?): Promise<EnqueueResult>;

Defined in: src/jobs.service.ts:48

Parameters
ParameterType
jobTypestring
payloadobject
optsEnqueueOptions<object, object>
Returns

Promise<EnqueueResult>

getJob()
ts
getJob<TPayload, TContext>(jobId): Promise<JobRecord<TPayload, TContext> | null>;

Defined in: src/jobs.service.ts:105

Type Parameters
Type ParameterDefault type
TPayloadunknown
TContextunknown
Parameters
ParameterType
jobIdstring
Returns

Promise<JobRecord<TPayload, TContext> | null>

getJobHistory()
ts
getJobHistory(jobId): Promise<JobHistoryEntry[]>;

Defined in: src/jobs.service.ts:111

Parameters
ParameterType
jobIdstring
Returns

Promise<JobHistoryEntry[]>

listDeadLetters()
ts
listDeadLetters(filter?): Promise<JobRecord<unknown, unknown>[]>;

Defined in: src/jobs.service.ts:116

Parameters
ParameterType
filter?DeadLetterFilter
Returns

Promise<JobRecord<unknown, unknown>[]>

replayDeadLetter()
ts
replayDeadLetter(jobId, options?): Promise<string>;

Defined in: src/jobs.service.ts:124

Parameters
ParameterType
jobIdstring
options?ReplayOptions
Returns

Promise<string>

scheduler()
ts
scheduler(jobType): Scheduler;

Defined in: src/jobs.service.ts:241

Parameters
ParameterType
jobTypestring
Returns

Scheduler

setTenantWeight()
ts
setTenantWeight(
   jobType,
   tenantId,
   weight): void;

Defined in: src/jobs.service.ts:237

Parameters
ParameterType
jobTypestring
tenantIdstring
weightnumber
Returns

void


Scheduler

Defined in: src/scheduler.ts:37

Constructors

Constructor
ts
new Scheduler(opts): Scheduler;

Defined in: src/scheduler.ts:47

Parameters
ParameterType
optsSchedulerOptions
Returns

Scheduler

Methods

onAck()
ts
onAck(jobId): void;

Defined in: src/scheduler.ts:100

Parameters
ParameterType
jobIdstring
Returns

void

onEnqueue()
ts
onEnqueue(
   jobId,
   tenantId,
   timing?): void;

Defined in: src/scheduler.ts:78

Parameters
ParameterType
jobIdstring
tenantIdstring
timing?SchedulerEnqueueTiming
Returns

void

pickNext()
ts
pickNext(): PickedJob | null;

Defined in: src/scheduler.ts:110

Returns

PickedJob | null

setWeight()
ts
setWeight(tenantId, weight): void;

Defined in: src/scheduler.ts:65

Parameters
ParameterType
tenantIdstring
weightnumber
Returns

void

snapshot()
ts
snapshot(): {
  inflight: number;
  starvationTokens: number;
  tenantId: string;
  waiting: number;
  weight: number;
}[];

Defined in: src/scheduler.ts:142

Returns

{ inflight: number; starvationTokens: number; tenantId: string; waiting: number; weight: number; }[]

Interfaces

BackendCapabilities

Defined in: src/lifecycle.ts:48

Properties

backoff
ts
backoff: boolean;

Defined in: src/lifecycle.ts:53

deadLetter
ts
deadLetter: boolean;

Defined in: src/lifecycle.ts:58

delayed
ts
delayed: boolean;

Defined in: src/lifecycle.ts:51

distributed
ts
distributed: boolean;

Defined in: src/lifecycle.ts:50

durable
ts
durable: boolean;

Defined in: src/lifecycle.ts:49

fairness
ts
fairness: "none" | "local-tenant";

Defined in: src/lifecycle.ts:59

history
ts
history: boolean;

Defined in: src/lifecycle.ts:56

idempotency
ts
idempotency: boolean;

Defined in: src/lifecycle.ts:57

manualDrain
ts
manualDrain: boolean;

Defined in: src/lifecycle.ts:60

retries
ts
retries: boolean;

Defined in: src/lifecycle.ts:52

statusQuery
ts
statusQuery: boolean;

Defined in: src/lifecycle.ts:55

timeout
ts
timeout: boolean;

Defined in: src/lifecycle.ts:54


BullMQBackendOptions

Defined in: src/backend/bullmq-backend.ts:118

Properties

connection
ts
connection: object;

Defined in: src/backend/bullmq-backend.ts:121

BullMQ/ioredis connection object. Kept structural so BullMQ remains an optional peer.

namespace?
ts
optional namespace?: string;

Defined in: src/backend/bullmq-backend.ts:119

workerConcurrency?
ts
optional workerConcurrency?: number;

Defined in: src/backend/bullmq-backend.ts:122


BullMQConsumerOptions

Defined in: src/backend/bullmq-backend.ts:131

Properties

contextRunner
ts
contextRunner: (ctx, fn) => Promise<unknown>;

Defined in: src/backend/bullmq-backend.ts:133

Parameters
ParameterType
ctxJobContext
fn() => Promise<unknown>
Returns

Promise<unknown>

events?
ts
optional events?: JobEventsOptions;

Defined in: src/backend/bullmq-backend.ts:137

onFail?
ts
optional onFail?: (e, err) => void;

Defined in: src/backend/bullmq-backend.ts:136

Parameters
ParameterType
eJobEvent
errError
Returns

void

onFinish?
ts
optional onFinish?: (e) => void;

Defined in: src/backend/bullmq-backend.ts:135

Parameters
ParameterType
eJobEvent
Returns

void

onStart?
ts
optional onStart?: (e) => void;

Defined in: src/backend/bullmq-backend.ts:134

Parameters
ParameterType
eJobEvent
Returns

void

registry
ts
registry: HandlerRegistry;

Defined in: src/backend/bullmq-backend.ts:132


BullMQOptions

Defined in: src/jobs.module.ts:104

Properties

backend
ts
backend: BullMQBackend;

Defined in: src/jobs.module.ts:105

contextExtractor?
ts
optional contextExtractor?: () => JobContext;

Defined in: src/jobs.module.ts:111

Returns

JobContext

contextRunner?
ts
optional contextRunner?: (ctx, fn) => Promise<unknown>;

Defined in: src/jobs.module.ts:112

Parameters
ParameterType
ctxJobContext
fn() => Promise<unknown>
Returns

Promise<unknown>

events?
ts
optional events?: JobEventsOptions;

Defined in: src/jobs.module.ts:110

global?
ts
optional global?: boolean;

Defined in: src/jobs.module.ts:108

jobs?
ts
optional jobs?: JobDefinitions;

Defined in: src/jobs.module.ts:107

jobTypes
ts
jobTypes: string[];

Defined in: src/jobs.module.ts:106

onJobFail?
ts
optional onJobFail?: (e, err) => void;

Defined in: src/jobs.module.ts:115

Parameters
ParameterType
eJobEvent
errError
Returns

void

onJobFinish?
ts
optional onJobFinish?: (e) => void;

Defined in: src/jobs.module.ts:114

Parameters
ParameterType
eJobEvent
Returns

void

onJobStart?
ts
optional onJobStart?: (e) => void;

Defined in: src/jobs.module.ts:113

Parameters
ParameterType
eJobEvent
Returns

void

strictCapabilities?
ts
optional strictCapabilities?: boolean;

Defined in: src/jobs.module.ts:109


BullMQRawQueue

Defined in: src/backend/bullmq-backend.ts:125

Methods

add()
ts
add(
   name,
   data,
   options?): Promise<{
  id?: string | number;
}>;

Defined in: src/backend/bullmq-backend.ts:126

Parameters
ParameterType
namestring
dataunknown
options?unknown
Returns

Promise<{ id?: string | number; }>

close()
ts
close(): Promise<void>;

Defined in: src/backend/bullmq-backend.ts:128

Returns

Promise<void>

getJob()
ts
getJob(jobId): Promise<unknown>;

Defined in: src/backend/bullmq-backend.ts:127

Parameters
ParameterType
jobIdstring
Returns

Promise<unknown>


DeadLetterFilter

Defined in: src/lifecycle.ts:96

Properties

tenantId?
ts
optional tenantId?: string;

Defined in: src/lifecycle.ts:98

type?
ts
optional type?: string;

Defined in: src/lifecycle.ts:97


DedupeOptions

Defined in: src/types.ts:43

Properties

key
ts
key: string;

Defined in: src/types.ts:44

mode?
ts
optional mode?: "while_active" | "until_completed";

Defined in: src/types.ts:47

scope?
ts
optional scope?: "global" | "tenant";

Defined in: src/types.ts:45

ttlMs?
ts
optional ttlMs?: number;

Defined in: src/types.ts:46


EnqueueOptions

Defined in: src/types.ts:50

Type Parameters

Type ParameterDefault type
TContextJobContext
TMetadata extends objectRecord<string, unknown>

Properties

attempts?
ts
optional attempts?: number;

Defined in: src/types.ts:59

backoff?
ts
optional backoff?: BackoffPolicy;

Defined in: src/types.ts:60

context?
ts
optional context?: TContext;

Defined in: src/types.ts:55

dedupe?
ts
optional dedupe?: DedupeOptions;

Defined in: src/types.ts:63

delay?
ts
optional delay?: number;

Defined in: src/types.ts:56

delayMs?
ts
optional delayMs?: number;

Defined in: src/types.ts:57

idempotencyKey?
ts
optional idempotencyKey?: string;

Defined in: src/types.ts:62

jobId?
ts
optional jobId?: string;

Defined in: src/types.ts:54

metadata?
ts
optional metadata?: TMetadata;

Defined in: src/types.ts:64

scheduledFor?
ts
optional scheduledFor?: Date;

Defined in: src/types.ts:58

timeoutMs?
ts
optional timeoutMs?: number;

Defined in: src/types.ts:61


EnqueueResult

Defined in: src/lifecycle.ts:90

Properties

existingJobId?
ts
optional existingJobId?: string;

Defined in: src/lifecycle.ts:93

jobId
ts
jobId: string;

Defined in: src/lifecycle.ts:92

status
ts
status: "created" | "deduped";

Defined in: src/lifecycle.ts:91


FairWorkerOptions

Defined in: src/fair-worker.ts:13

Properties

backend
ts
backend: JobsBackend;

Defined in: src/fair-worker.ts:15

contextRunner
ts
contextRunner: (ctx, fn) => Promise<unknown>;

Defined in: src/fair-worker.ts:18

Parameters
ParameterType
ctxJobContext
fn() => Promise<unknown>
Returns

Promise<unknown>

events?
ts
optional events?: JobEventsOptions;

Defined in: src/fair-worker.ts:22

jobType
ts
jobType: string;

Defined in: src/fair-worker.ts:14

onFail?
ts
optional onFail?: (e, err) => void;

Defined in: src/fair-worker.ts:21

Parameters
ParameterType
eJobEvent
errError
Returns

void

onFinish?
ts
optional onFinish?: (e) => void;

Defined in: src/fair-worker.ts:20

Parameters
ParameterType
eJobEvent
Returns

void

onStart?
ts
optional onStart?: (e) => void;

Defined in: src/fair-worker.ts:19

Parameters
ParameterType
eJobEvent
Returns

void

registry
ts
registry: HandlerRegistry;

Defined in: src/fair-worker.ts:17

scheduler
ts
scheduler: Scheduler;

Defined in: src/fair-worker.ts:16


FakeJobsOptions

Defined in: src/fake-jobs.service.ts:10

Extends

Properties

contextExtractor?
ts
optional contextExtractor?: () => JobContext;

Defined in: src/fake-jobs.service.ts:14

Returns

JobContext

contextRunner?
ts
optional contextRunner?: (ctx, fn) => Promise<unknown>;

Defined in: src/fake-jobs.service.ts:15

Parameters
ParameterType
ctxJobContext
fn() => Promise<unknown>
Returns

Promise<unknown>

defaultWeight?
ts
optional defaultWeight?: number;

Defined in: src/scheduler.ts:4

Inherited from

SchedulerOptions.defaultWeight

jobs?
ts
optional jobs?: JobDefinitions;

Defined in: src/fake-jobs.service.ts:12

jobTypes
ts
jobTypes: string[];

Defined in: src/fake-jobs.service.ts:11

minSharePct?
ts
optional minSharePct?: number;

Defined in: src/scheduler.ts:5

Inherited from

SchedulerOptions.minSharePct

now?
ts
optional now?: string | number | Date;

Defined in: src/fake-jobs.service.ts:13

tenantCap?
ts
optional tenantCap?: number;

Defined in: src/scheduler.ts:6

Inherited from

SchedulerOptions.tenantCap


InMemoryBackendOptions

Defined in: src/backend/in-memory-backend.ts:44

Properties

deadLetter?
ts
optional deadLetter?: {
  enabled?: boolean;
};

Defined in: src/backend/in-memory-backend.ts:46

enabled?
ts
optional enabled?: boolean;

now?
ts
optional now?: () => Date;

Defined in: src/backend/in-memory-backend.ts:45

Returns

Date


InMemoryOptions

Defined in: src/jobs.module.ts:89

Properties

concurrency?
ts
optional concurrency?: {
  tenantCap?: number;
};

Defined in: src/jobs.module.ts:95

tenantCap?
ts
optional tenantCap?: number;

contextExtractor?
ts
optional contextExtractor?: () => JobContext;

Defined in: src/jobs.module.ts:97

Returns

JobContext

contextRunner?
ts
optional contextRunner?: (ctx, fn) => Promise<unknown>;

Defined in: src/jobs.module.ts:98

Parameters
ParameterType
ctxJobContext
fn() => Promise<unknown>
Returns

Promise<unknown>

events?
ts
optional events?: JobEventsOptions;

Defined in: src/jobs.module.ts:94

fairness?
ts
optional fairness?: {
  defaultWeight?: number;
  minSharePct?: number;
};

Defined in: src/jobs.module.ts:96

defaultWeight?
ts
optional defaultWeight?: number;
minSharePct?
ts
optional minSharePct?: number;

global?
ts
optional global?: boolean;

Defined in: src/jobs.module.ts:92

jobs?
ts
optional jobs?: JobDefinitions;

Defined in: src/jobs.module.ts:91

jobTypes
ts
jobTypes: string[];

Defined in: src/jobs.module.ts:90

onJobFail?
ts
optional onJobFail?: (e, err) => void;

Defined in: src/jobs.module.ts:101

Parameters
ParameterType
eJobEvent
errError
Returns

void

onJobFinish?
ts
optional onJobFinish?: (e) => void;

Defined in: src/jobs.module.ts:100

Parameters
ParameterType
eJobEvent
Returns

void

onJobStart?
ts
optional onJobStart?: (e) => void;

Defined in: src/jobs.module.ts:99

Parameters
ParameterType
eJobEvent
Returns

void

strictCapabilities?
ts
optional strictCapabilities?: boolean;

Defined in: src/jobs.module.ts:93


JobBuilder

Defined in: src/contracts.ts:29

Type Parameters

Type Parameter
TPayload
TContext
TResult

Properties

__context?
ts
readonly optional __context?: TContext;

Defined in: src/contracts.ts:31

__payload?
ts
readonly optional __payload?: TPayload;

Defined in: src/contracts.ts:30

__result?
ts
readonly optional __result?: TResult;

Defined in: src/contracts.ts:32

Methods

context()
ts
context<TNextContext>(...invalid): JobBuilder<TPayload, TNextContext, TResult>;

Defined in: src/contracts.ts:33

Type Parameters
Type Parameter
TNextContext extends object
Parameters
ParameterType
...invalidPlainObjectArguments<TNextContext>
Returns

JobBuilder<TPayload, TNextContext, TResult>

defaults()
ts
defaults(defaults): JobDefinition<TPayload, TContext, TResult>;

Defined in: src/contracts.ts:37

Parameters
ParameterType
defaultsJobDefaults
Returns

JobDefinition<TPayload, TContext, TResult>

result()
ts
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

ts
[key: string]: unknown

Properties

signal?
ts
optional signal?: AbortSignal;

Defined in: src/types.ts:5

tenantId?
ts
optional tenantId?: string;

Defined in: src/types.ts:4


JobDefaults

Defined in: src/contracts.ts:40

Properties

attempts?
ts
optional attempts?: number;

Defined in: src/contracts.ts:41

backoff?
ts
optional backoff?: BackoffPolicy;

Defined in: src/contracts.ts:43

timeoutMs?
ts
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?
ts
readonly optional __context?: TContext;

Defined in: src/contracts.ts:24

__payload?
ts
readonly optional __payload?: TPayload;

Defined in: src/contracts.ts:23

__result?
ts
readonly optional __result?: TResult;

Defined in: src/contracts.ts:25

defaults
ts
readonly defaults: JobDefaults;

Defined in: src/contracts.ts:26


JobEnvelope

Defined in: src/types.ts:9

Type Parameters

Type ParameterDefault type
Tunknown

Properties

attempts
ts
attempts: number;

Defined in: src/types.ts:15

backoff?
ts
optional backoff?: BackoffPolicy;

Defined in: src/types.ts:19

context
ts
context: JobContext;

Defined in: src/types.ts:13

dedupeKey?
ts
optional dedupeKey?: string;

Defined in: src/types.ts:22

enqueuedAt
ts
enqueuedAt: Date;

Defined in: src/types.ts:14

id
ts
id: string;

Defined in: src/types.ts:10

idempotencyKey?
ts
optional idempotencyKey?: string;

Defined in: src/types.ts:21

jobType
ts
jobType: string;

Defined in: src/types.ts:11

maxAttempts
ts
maxAttempts: number;

Defined in: src/types.ts:16

metadata
ts
metadata: Record<string, unknown>;

Defined in: src/types.ts:20

payload
ts
payload: T;

Defined in: src/types.ts:12

scheduledFor?
ts
optional scheduledFor?: Date;

Defined in: src/types.ts:17

timeoutMs?
ts
optional timeoutMs?: number;

Defined in: src/types.ts:18


JobErrorSummary

Defined in: src/lifecycle.ts:11

Properties

code?
ts
optional code?: string;

Defined in: src/lifecycle.ts:14

message
ts
message: string;

Defined in: src/lifecycle.ts:13

name?
ts
optional name?: string;

Defined in: src/lifecycle.ts:12

reason?
ts
optional reason?: string;

Defined in: src/lifecycle.ts:15


JobEvent

Defined in: src/types.ts:33

Properties

attempt?
ts
optional attempt?: number;

Defined in: src/types.ts:37

durationMs?
ts
optional durationMs?: number;

Defined in: src/types.ts:40

finishedAt?
ts
optional finishedAt?: Date;

Defined in: src/types.ts:39

jobId
ts
jobId: string;

Defined in: src/types.ts:34

jobType
ts
jobType: string;

Defined in: src/types.ts:35

startedAt?
ts
optional startedAt?: Date;

Defined in: src/types.ts:38

tenantId
ts
tenantId: string | undefined;

Defined in: src/types.ts:36


JobEventsOptions

Defined in: src/lifecycle.ts:86

Properties

onEvent?
ts
optional onEvent?: (event) => void;

Defined in: src/lifecycle.ts:87

Parameters
ParameterType
eventJobLifecycleEvent
Returns

void


JobHistoryEntry

Defined in: src/lifecycle.ts:38

Properties

at
ts
at: Date;

Defined in: src/lifecycle.ts:42

attempt
ts
attempt: number;

Defined in: src/lifecycle.ts:41

error?
ts
optional error?: JobErrorSummary;

Defined in: src/lifecycle.ts:44

jobId
ts
jobId: string;

Defined in: src/lifecycle.ts:39

metadata?
ts
optional metadata?: Record<string, unknown>;

Defined in: src/lifecycle.ts:45

reason?
ts
optional reason?: string;

Defined in: src/lifecycle.ts:43

status
ts
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
ts
attempt: number;

Defined in: src/contracts.ts:75

context
ts
context: JobContextOf<TJobs, TType>;

Defined in: src/contracts.ts:74

id
ts
id: string;

Defined in: src/contracts.ts:71

maxAttempts
ts
maxAttempts: number;

Defined in: src/contracts.ts:76

metadata
ts
metadata: Record<string, unknown>;

Defined in: src/contracts.ts:78

payload
ts
payload: JobPayload<TJobs, TType>;

Defined in: src/contracts.ts:73

signal
ts
signal: AbortSignal;

Defined in: src/contracts.ts:77

type
ts
type: TType;

Defined in: src/contracts.ts:72


JobLifecycleEvent

Defined in: src/lifecycle.ts:74

Properties

at
ts
at: Date;

Defined in: src/lifecycle.ts:80

attempt
ts
attempt: number;

Defined in: src/lifecycle.ts:79

durationMs?
ts
optional durationMs?: number;

Defined in: src/lifecycle.ts:81

error?
ts
optional error?: JobErrorSummary;

Defined in: src/lifecycle.ts:82

jobId
ts
jobId: string;

Defined in: src/lifecycle.ts:76

jobType
ts
jobType: string;

Defined in: src/lifecycle.ts:77

metadata?
ts
optional metadata?: Record<string, unknown>;

Defined in: src/lifecycle.ts:83

tenantId?
ts
optional tenantId?: string;

Defined in: src/lifecycle.ts:78

type
ts
type: JobLifecycleEventType;

Defined in: src/lifecycle.ts:75


JobRecord

Defined in: src/lifecycle.ts:18

Type Parameters

Type ParameterDefault type
TPayloadunknown
TContextunknown

Properties

attempt
ts
attempt: number;

Defined in: src/lifecycle.ts:24

completedAt?
ts
optional completedAt?: Date;

Defined in: src/lifecycle.ts:29

context?
ts
optional context?: TContext;

Defined in: src/lifecycle.ts:23

dedupeKey?
ts
optional dedupeKey?: string;

Defined in: src/lifecycle.ts:34

enqueuedAt
ts
enqueuedAt: Date;

Defined in: src/lifecycle.ts:26

error?
ts
optional error?: JobErrorSummary;

Defined in: src/lifecycle.ts:32

failedAt?
ts
optional failedAt?: Date;

Defined in: src/lifecycle.ts:30

id
ts
id: string;

Defined in: src/lifecycle.ts:19

idempotencyKey?
ts
optional idempotencyKey?: string;

Defined in: src/lifecycle.ts:33

maxAttempts
ts
maxAttempts: number;

Defined in: src/lifecycle.ts:25

metadata
ts
metadata: Record<string, unknown>;

Defined in: src/lifecycle.ts:35

nextAttemptAt?
ts
optional nextAttemptAt?: Date;

Defined in: src/lifecycle.ts:31

payload?
ts
optional payload?: TPayload;

Defined in: src/lifecycle.ts:22

scheduledFor?
ts
optional scheduledFor?: Date;

Defined in: src/lifecycle.ts:27

startedAt?
ts
optional startedAt?: Date;

Defined in: src/lifecycle.ts:28

status
ts
status: JobStatus;

Defined in: src/lifecycle.ts:21

type
ts
type: string;

Defined in: src/lifecycle.ts:20


JobsBackend

Defined in: src/backend/jobs-backend.interface.ts:13

Methods

ack()
ts
ack(jobType, jobId): Promise<void | JobRecord<unknown, unknown>>;

Defined in: src/backend/jobs-backend.interface.ts:28

Parameters
ParameterType
jobTypestring
jobIdstring
Returns

Promise<void | JobRecord<unknown, unknown>>

capabilities()
ts
capabilities(): BackendCapabilities;

Defined in: src/backend/jobs-backend.interface.ts:14

Returns

BackendCapabilities

close()
ts
close(): Promise<void>;

Defined in: src/backend/jobs-backend.interface.ts:35

Returns

Promise<void>

discardDeadLetter()?
ts
optional discardDeadLetter(jobId, reason?): Promise<void | JobRecord<unknown, unknown>>;

Defined in: src/backend/jobs-backend.interface.ts:34

Parameters
ParameterType
jobIdstring
reason?string
Returns

Promise<void | JobRecord<unknown, unknown>>

enqueue()
ts
enqueue(
   jobType,
   envelope,
opts): Promise<string>;

Defined in: src/backend/jobs-backend.interface.ts:15

Parameters
ParameterType
jobTypestring
envelopeRecord<string, unknown>
optsEnqueueOptions
Returns

Promise<string>

enqueueDetailed()?
ts
optional enqueueDetailed(
   jobType,
   envelope,
   opts,
onCommit?): Promise<EnqueueResult>;

Defined in: src/backend/jobs-backend.interface.ts:20

Parameters
ParameterType
jobTypestring
envelopeRecord<string, unknown>
optsEnqueueOptions
onCommit?EnqueueCommitObserver
Returns

Promise<EnqueueResult>

fail()
ts
fail(
   jobType,
   jobId,
reason): Promise<void | JobRecord<unknown, unknown>>;

Defined in: src/backend/jobs-backend.interface.ts:29

Parameters
ParameterType
jobTypestring
jobIdstring
reasonstring
Returns

Promise<void | JobRecord<unknown, unknown>>

getJob()
ts
getJob(jobId): Promise<JobRecord<unknown, unknown> | null>;

Defined in: src/backend/jobs-backend.interface.ts:30

Parameters
ParameterType
jobIdstring
Returns

Promise<JobRecord<unknown, unknown> | null>

getJobHistory()
ts
getJobHistory(jobId): Promise<JobHistoryEntry[]>;

Defined in: src/backend/jobs-backend.interface.ts:31

Parameters
ParameterType
jobIdstring
Returns

Promise<JobHistoryEntry[]>

listDeadLetters()?
ts
optional listDeadLetters(filter?): Promise<JobRecord<unknown, unknown>[]>;

Defined in: src/backend/jobs-backend.interface.ts:32

Parameters
ParameterType
filter?DeadLetterFilter
Returns

Promise<JobRecord<unknown, unknown>[]>

moveToActive()
ts
moveToActive(jobType, jobId): Promise<JobEnvelope<unknown> | null>;

Defined in: src/backend/jobs-backend.interface.ts:27

Parameters
ParameterType
jobTypestring
jobIdstring
Returns

Promise<JobEnvelope<unknown> | null>

peekWaiting()
ts
peekWaiting(jobType): Promise<JobEnvelope<unknown>[]>;

Defined in: src/backend/jobs-backend.interface.ts:26

Parameters
ParameterType
jobTypestring
Returns

Promise<JobEnvelope<unknown>[]>

replayDeadLetter()?
ts
optional replayDeadLetter(jobId, options?): Promise<string>;

Defined in: src/backend/jobs-backend.interface.ts:33

Parameters
ParameterType
jobIdstring
options?ReplayOptions
Returns

Promise<string>


JobsOutboxBridgeOptions

Defined in: src/outbox/outbox-bridge.module.ts:13

Properties

jobs
ts
jobs: JobsService;

Defined in: src/outbox/outbox-bridge.module.ts:14

map
ts
map: Record<string, string>;

Defined in: src/outbox/outbox-bridge.module.ts:16

source
ts
source: OutboxSource;

Defined in: src/outbox/outbox-bridge.module.ts:15

tenantFrom?
ts
optional tenantFrom?: (event) => string;

Defined in: src/outbox/outbox-bridge.module.ts:17

Parameters
ParameterType
eventOutboxEvent
Returns

string


JobsServiceDeps

Defined in: src/jobs.service.ts:20

Properties

backend
ts
backend: JobsBackend;

Defined in: src/jobs.service.ts:21

contextExtractor?
ts
optional contextExtractor?: () => JobContext;

Defined in: src/jobs.service.ts:25

Returns

JobContext

contextRunner?
ts
optional contextRunner?: (ctx, fn) => Promise<unknown>;

Defined in: src/jobs.service.ts:26

Parameters
ParameterType
ctxJobContext
fn() => Promise<unknown>
Returns

Promise<unknown>

events?
ts
optional events?: JobEventsOptions;

Defined in: src/jobs.service.ts:27

jobs?
ts
optional jobs?: JobDefinitions;

Defined in: src/jobs.service.ts:28

jobTypes?
ts
optional jobTypes?: Iterable<string, any, any>;

Defined in: src/jobs.service.ts:24

registry
ts
registry: HandlerRegistry;

Defined in: src/jobs.service.ts:22

schedulers?
ts
optional schedulers?: Map<string, Scheduler>;

Defined in: src/jobs.service.ts:23


OutboxEvent

Defined in: src/outbox/outbox-bridge.module.ts:3

Properties

payload
ts
payload: Record<string, unknown>;

Defined in: src/outbox/outbox-bridge.module.ts:5

tenantId
ts
tenantId: string;

Defined in: src/outbox/outbox-bridge.module.ts:6

type
ts
type: string;

Defined in: src/outbox/outbox-bridge.module.ts:4


OutboxJobsPublisherOptions

Defined in: src/outbox/outbox-jobs-publisher.ts:39

Properties

map
ts
map: Record<string, string | OutboxJobTarget>;

Defined in: src/outbox/outbox-jobs-publisher.ts:40

unmapped?
ts
optional unmapped?: "error" | "ignore";

Defined in: src/outbox/outbox-jobs-publisher.ts:41


OutboxJobTarget

Defined in: src/outbox/outbox-jobs-publisher.ts:32

Properties

job
ts
job: string;

Defined in: src/outbox/outbox-jobs-publisher.ts:33

options?
ts
optional options?:
  | EnqueueOptions<JobContext, Record<string, unknown>>
  | ((record) => EnqueueOptions);

Defined in: src/outbox/outbox-jobs-publisher.ts:35

payload?
ts
optional payload?: (record) => Record<string, unknown>;

Defined in: src/outbox/outbox-jobs-publisher.ts:34

Parameters
ParameterType
recordOutboxRecord
Returns

Record<string, unknown>

tenant?
ts
optional tenant?: "required" | "optional" | ((record) => string | undefined);

Defined in: src/outbox/outbox-jobs-publisher.ts:36


OutboxPublisher

Defined in: src/outbox/outbox-jobs-publisher.ts:28

Methods

publish()
ts
publish(record): Promise<void>;

Defined in: src/outbox/outbox-jobs-publisher.ts:29

Parameters
ParameterType
recordOutboxRecord
Returns

Promise<void>


OutboxRecord

Defined in: src/outbox/outbox-jobs-publisher.ts:6

Properties

aggregateId?
ts
optional aggregateId?: string | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:19

aggregateType?
ts
optional aggregateType?: string | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:18

causationId?
ts
optional causationId?: string | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:23

correlationId?
ts
optional correlationId?: string | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:22

createdAt?
ts
optional createdAt?: Date;

Defined in: src/outbox/outbox-jobs-publisher.ts:11

eventType
ts
eventType: string;

Defined in: src/outbox/outbox-jobs-publisher.ts:8

headers?
ts
optional headers?: Record<string, unknown> | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:24

id
ts
id: string;

Defined in: src/outbox/outbox-jobs-publisher.ts:7

idempotencyKey?
ts
optional idempotencyKey?: string | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:21

lastError?
ts
optional lastError?: string | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:16

maxRetries?
ts
optional maxRetries?: number;

Defined in: src/outbox/outbox-jobs-publisher.ts:15

occurredAt?
ts
optional occurredAt?: string | Date | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:25

partitionKey?
ts
optional partitionKey?: string | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:20

payload
ts
payload: Record<string, unknown>;

Defined in: src/outbox/outbox-jobs-publisher.ts:9

processedAt?
ts
optional processedAt?: Date | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:13

retryCount?
ts
optional retryCount?: number;

Defined in: src/outbox/outbox-jobs-publisher.ts:14

status?
ts
optional status?: "PENDING" | "PROCESSING" | "SENT" | "FAILED";

Defined in: src/outbox/outbox-jobs-publisher.ts:10

tenantId?
ts
optional tenantId?: string | null;

Defined in: src/outbox/outbox-jobs-publisher.ts:17

updatedAt?
ts
optional updatedAt?: Date;

Defined in: src/outbox/outbox-jobs-publisher.ts:12


OutboxSource

Defined in: src/outbox/outbox-bridge.module.ts:9

Methods

onEvent()
ts
onEvent(cb): void;

Defined in: src/outbox/outbox-bridge.module.ts:10

Parameters
ParameterType
cb(event) => Promise<void>
Returns

void


PickedJob

Defined in: src/scheduler.ts:32

Properties

jobId
ts
jobId: string;

Defined in: src/scheduler.ts:33

tenantId
ts
tenantId: string;

Defined in: src/scheduler.ts:34


ReplayOptions

Defined in: src/lifecycle.ts:101

Properties

metadata?
ts
optional metadata?: Record<string, unknown>;

Defined in: src/lifecycle.ts:104

preserveOriginalId?
ts
optional preserveOriginalId?: boolean;

Defined in: src/lifecycle.ts:102

resetAttempts?
ts
optional resetAttempts?: boolean;

Defined in: src/lifecycle.ts:103


RetryPolicy

Defined in: src/retry.ts:5

Properties

attempts?
ts
optional attempts?: number;

Defined in: src/retry.ts:6

backoff?
ts
optional backoff?: BackoffPolicy;

Defined in: src/retry.ts:7


SchedulerEnqueueTiming

Defined in: src/scheduler.ts:10

Properties

delayMs?
ts
optional delayMs?: number;

Defined in: src/scheduler.ts:12

scheduledFor?
ts
optional scheduledFor?: Date;

Defined in: src/scheduler.ts:11


SchedulerOptions

Defined in: src/scheduler.ts:3

Properties

clock?
ts
optional clock?: () => Date;

Defined in: src/scheduler.ts:7

Returns

Date

defaultWeight
ts
defaultWeight: number;

Defined in: src/scheduler.ts:4

minSharePct
ts
minSharePct: number;

Defined in: src/scheduler.ts:5

tenantCap
ts
tenantCap: number;

Defined in: src/scheduler.ts:6


ShardSnapshot

Defined in: src/types.ts:25

Properties

inflight
ts
inflight: number;

Defined in: src/types.ts:28

starvationTokens
ts
starvationTokens: number;

Defined in: src/types.ts:30

tenantId
ts
tenantId: string;

Defined in: src/types.ts:26

waiting
ts
waiting: number;

Defined in: src/types.ts:27

weight
ts
weight: number;

Defined in: src/types.ts:29


TypedJobHandler

Defined in: src/contracts.ts:81

Type Parameters

Type Parameter
TJobs extends JobDefinitions
TType extends JobType<TJobs>

Methods

handle()
ts
handle(payload, context): Promise<JobResult<TJobs, TType>>;

Defined in: src/contracts.ts:82

Parameters
ParameterType
payloadJobPayload<TJobs, TType>
contextJobContextOf<TJobs, TType>
Returns

Promise<JobResult<TJobs, TType>>


TypedJobsService

Defined in: src/contracts.ts:88

Type Parameters

Type Parameter
TJobs extends JobDefinitions

Methods

capabilities()
ts
capabilities(): BackendCapabilities;

Defined in: src/contracts.ts:106

Returns

BackendCapabilities

discardDeadLetter()
ts
discardDeadLetter(jobId, reason?): Promise<void>;

Defined in: src/contracts.ts:109

Parameters
ParameterType
jobIdstring
reason?string
Returns

Promise<void>

enqueue()
ts
enqueue<TType>(
   type,
   payload,
options?): Promise<string>;

Defined in: src/contracts.ts:89

Type Parameters
Type Parameter
TType extends string
Parameters
ParameterType
typeTType
payloadJobPayload<TJobs, TType>
options?EnqueueOptions<DeclaredJobContext<TJobs, TType>, object>
Returns

Promise<string>

enqueueDetailed()
ts
enqueueDetailed<TType>(
   type,
   payload,
options?): Promise<EnqueueResult>;

Defined in: src/contracts.ts:95

Type Parameters
Type Parameter
TType extends string
Parameters
ParameterType
typeTType
payloadJobPayload<TJobs, TType>
options?EnqueueOptions<DeclaredJobContext<TJobs, TType>, object>
Returns

Promise<EnqueueResult>

getJob()
ts
getJob<TType>(jobId): Promise<
  | JobRecord<JobPayload<TJobs, TType>, JobContextOf<TJobs, TType>>
| null>;

Defined in: src/contracts.ts:101

Type Parameters
Type ParameterDefault type
TType extends stringExtract<keyof TJobs, string>
Parameters
ParameterType
jobIdstring
Returns

Promise< | JobRecord<JobPayload<TJobs, TType>, JobContextOf<TJobs, TType>> | null>

getJobHistory()
ts
getJobHistory(jobId): Promise<JobHistoryEntry[]>;

Defined in: src/contracts.ts:105

Parameters
ParameterType
jobIdstring
Returns

Promise<JobHistoryEntry[]>

listDeadLetters()
ts
listDeadLetters(filter?): Promise<JobRecord<unknown, unknown>[]>;

Defined in: src/contracts.ts:107

Parameters
ParameterType
filter?DeadLetterFilter
Returns

Promise<JobRecord<unknown, unknown>[]>

replayDeadLetter()
ts
replayDeadLetter(jobId, options?): Promise<string>;

Defined in: src/contracts.ts:108

Parameters
ParameterType
jobIdstring
options?ReplayOptions
Returns

Promise<string>

Type Aliases

AnyJobDefinition

ts
type AnyJobDefinition =
  | JobBuilder<unknown, unknown, unknown>
| JobDefinition<unknown, unknown, unknown>;

Defined in: src/contracts.ts:18


BackoffPolicy

ts
type BackoffPolicy =
  | {
  delayMs: number;
  jitter?: number;
  type: "fixed";
}
  | {
  delayMs: number;
  jitter?: number;
  maxDelayMs?: number;
  type: "exponential";
};

Defined in: src/retry.ts:1


EmptyJobPayload

ts
type EmptyJobPayload = Record<string, never>;

Defined in: src/contracts.ts:14


EnqueueCommitObserver

ts
type EnqueueCommitObserver = (result) => void;

Defined in: src/backend/jobs-backend.interface.ts:11

Parameters

ParameterType
resultEnqueueResult

Returns

void


HandlerFn

ts
type HandlerFn = (payload, context) => Promise<unknown>;

Defined in: src/handler-registry.ts:4

Parameters

ParameterType
payloadRecord<string, unknown>
contextJobContext

Returns

Promise<unknown>


JobContextOf

ts
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

ts
type JobDefinitions = Record<string, AnyJobDefinition>;

Defined in: src/contracts.ts:16


JobLifecycleEventType

ts
type JobLifecycleEventType =
  | "job.enqueued"
  | "job.started"
  | "job.succeeded"
  | "job.failed"
  | "job.retry_scheduled"
  | "job.dead_lettered"
  | "job.cancelled"
  | "job.discarded"
  | "job.replayed";

Defined in: src/lifecycle.ts:63


JobPayload

ts
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

ts
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

ts
type JobsErrorCode = typeof JobsErrorCode[keyof typeof JobsErrorCode];

Defined in: src/errors.ts:1


JobStatus

ts
type JobStatus =
  | "queued"
  | "delayed"
  | "active"
  | "succeeded"
  | "failed"
  | "retrying"
  | "dead_letter"
  | "cancelled";

Defined in: src/lifecycle.ts:1


JobType

ts
type JobType<TJobs> = Extract<keyof TJobs, string>;

Defined in: src/contracts.ts:46

Type Parameters

Type Parameter
TJobs extends JobDefinitions

Variables

CONTEXT_KEY

ts
const CONTEXT_KEY: "__nestarcCtx" = '__nestarcCtx';

Defined in: src/context-serializer.ts:4


INTERNAL_JOB_KEY

ts
const INTERNAL_JOB_KEY: "__nestarcJob" = '__nestarcJob';

Defined in: src/context-serializer.ts:5


JOB_HANDLER_METADATA

ts
const JOB_HANDLER_METADATA: "nestarc:jobs:handler" = 'nestarc:jobs:handler';

Defined in: src/decorators/job-handler.decorator.ts:3


JOBS_BACKEND

ts
const JOBS_BACKEND: typeof JOBS_BACKEND;

Defined in: src/jobs.module.ts:27


JOBS_SERVICE

ts
const JOBS_SERVICE: typeof JOBS_SERVICE;

Defined in: src/contracts.ts:12


JOBS_WORKERS

ts
const JOBS_WORKERS: typeof JOBS_WORKERS;

Defined in: src/jobs.module.ts:28


JobsErrorCode

ts
const JobsErrorCode: {
  BackendClosed: "jobs_backend_closed";
  CapabilityUnsupported: "jobs_capability_unsupported";
  FairnessMisconfig: "jobs_fairness_misconfig";
  HandlerNotFound: "jobs_handler_not_found";
  IdentityConflict: "jobs_identity_conflict";
  QueueNotFound: "jobs_queue_not_found";
  ReservedPayloadKey: "jobs_reserved_payload_key";
};

Defined in: src/errors.ts:1

Type Declaration

NameTypeDefault valueDefined in
BackendClosed"jobs_backend_closed"'jobs_backend_closed'src/errors.ts:7
CapabilityUnsupported"jobs_capability_unsupported"'jobs_capability_unsupported'src/errors.ts:6
FairnessMisconfig"jobs_fairness_misconfig"'jobs_fairness_misconfig'src/errors.ts:5
HandlerNotFound"jobs_handler_not_found"'jobs_handler_not_found'src/errors.ts:3
IdentityConflict"jobs_identity_conflict"'jobs_identity_conflict'src/errors.ts:8
QueueNotFound"jobs_queue_not_found"'jobs_queue_not_found'src/errors.ts:4
ReservedPayloadKey"jobs_reserved_payload_key"'jobs_reserved_payload_key'src/errors.ts:2

Functions

attachContext()

ts
function attachContext<T>(payload, context): T & {
  __nestarcCtx: JobContext;
};

Defined in: src/context-serializer.ts:7

Type Parameters

Type Parameter
T extends Record<string, unknown>

Parameters

ParameterType
payloadT
contextJobContext | undefined

Returns

T & { __nestarcCtx: JobContext; }


computeBackoffDelayMs()

ts
function computeBackoffDelayMs(policy, attempt): number;

Defined in: src/retry.ts:10

Parameters

ParameterType
policyBackoffPolicy | undefined
attemptnumber

Returns

number


createFakeJobs()

ts
function createFakeJobs(opts): FakeJobsService;

Defined in: src/fake-jobs.service.ts:74

Parameters

ParameterType
optsFakeJobsOptions

Returns

FakeJobsService


createOutboxJobsPublisher()

ts
function createOutboxJobsPublisher(publisherOptions): Type<OutboxPublisher>;

Defined in: src/outbox/outbox-jobs-publisher.ts:49

Creates an OutboxPublisher-compatible Nest provider for use as OutboxModule.forRoot({ transport: createOutboxJobsPublisher(...), delivery: { mode: 'publisher' } }).

Parameters

ParameterType
publisherOptionsOutboxJobsPublisherOptions

Returns

Type<OutboxPublisher>


defineJobs()

ts
function defineJobs<TJobs>(definitions): TJobs;

Defined in: src/contracts.ts:141

Type Parameters

Type Parameter
TJobs extends JobDefinitions

Parameters

ParameterType
definitionsTJobs

Returns

TJobs


detachContext()

ts
function detachContext<T>(envelope): {
  context: JobContext;
  payload: Omit<T, typeof CONTEXT_KEY>;
};

Defined in: src/context-serializer.ts:24

Type Parameters

Type Parameter
T extends Record<string, unknown>

Parameters

ParameterType
envelopeT

Returns

ts
{
  context: JobContext;
  payload: Omit<T, typeof CONTEXT_KEY>;
}
NameTypeDefined in
contextJobContextsrc/context-serializer.ts:26
payloadOmit<T, typeof CONTEXT_KEY>src/context-serializer.ts:26

InjectJobs()

ts
function InjectJobs(): PropertyDecorator & ParameterDecorator;

Defined in: src/contracts.ts:145

Returns

PropertyDecorator & ParameterDecorator


job()

ts
function job<TPayload>(..._invalid): JobBuilder<TPayload, JobContext, unknown>;

Defined in: src/contracts.ts:135

Type Parameters

Type Parameter
TPayload extends object

Parameters

ParameterType
..._invalidPlainObjectArguments<TPayload>

Returns

JobBuilder<TPayload, JobContext, unknown>


JobHandler()

ts
function JobHandler(jobType): MethodDecorator;

Defined in: src/decorators/job-handler.decorator.ts:5

Parameters

ParameterType
jobTypestring

Returns

MethodDecorator

Released under the MIT License.