Skip to main content
Version: 8.9

Interface: JobWorkerConfig<In, Out, Headers>

Type Parameters

In

In extends z.ZodTypeAny = any

Out

Out extends z.ZodTypeAny = any

Headers

Headers extends z.ZodTypeAny = any

Properties

autoStart?

optional autoStart?: boolean;

Immediately start polling for work - default true


customHeadersSchema?

optional customHeadersSchema?: Headers;

Zod schema for custom headers in the activated job


fetchVariables?

optional fetchVariables?: In extends ZodType<unknown, unknown, $ZodTypeInternals<unknown, unknown>> ? Extract<keyof output<In>, string>[] : string[];

Optional list of variable names to fetch during activation


inputSchema?

optional inputSchema?: In;

Zod schema for variables in the activated job


jobHandler

jobHandler: (job) => "JOB_ACTION_RECEIPT" | Promise<"JOB_ACTION_RECEIPT">;

Parameters

job

Job<In, Headers>

Returns

"JOB_ACTION_RECEIPT" | Promise<"JOB_ACTION_RECEIPT">


jobTimeoutMs?

optional jobTimeoutMs?: number;

Job activation timeout — falls back to CAMUNDA_WORKER_TIMEOUT env var


jobType

jobType: string;

Zeebe job type


maxBackoffTimeMs?

optional maxBackoffTimeMs?: number;

Deprecated

Not used; pacing handled by long polling + client backpressure. Present only for migration compatibility.


maxParallelJobs?

optional maxParallelJobs?: number;

concurrency limit — falls back to CAMUNDA_WORKER_MAX_CONCURRENT_JOBS env var


outputSchema?

optional outputSchema?: Out;

Zod schema for variables in the complete command


pollIntervalMs?

optional pollIntervalMs?: number;

Backoff between polls - default 1ms


pollTimeoutMs?

optional pollTimeoutMs?: number;

The request will be completed when at least one job is activated or after the requestTimeout. If the requestTimeout = 0, the request will be completed after a default configured timeout in the broker. To immediately complete the request when no job is activated set the requestTimeout to a negative value


startupJitterMaxSeconds?

optional startupJitterMaxSeconds?: number;

Maximum random delay (in seconds) before the worker starts polling. When multiple application instances restart simultaneously, this spreads out initial activation requests to avoid saturating the server. 0 (the default) means no delay.


validateSchemas?

optional validateSchemas?: boolean;

Validate any provided input, output, customheader schema default: false


workerName?

optional workerName?: string;

Optional explicit name