Class: Job<D, R>
Defined in: glide-mq/src/job.ts:181
Represents a single job in the queue. Provides methods for reporting usage, streaming chunks, managing state, and interacting with the job lifecycle (delay, suspend, retry, etc.).
Type Parameters
| Type Parameter | Default type |
|---|---|
D | any |
R | any |
Properties
abortSignal?
abortSignal?: AbortSignal;Defined in: glide-mq/src/job.ts:230
AbortSignal that fires when this job is revoked during processing. The processor should check signal.aborted cooperatively. Only set when the job is being processed by a Worker.
attemptsMade
attemptsMade: number;Defined in: glide-mq/src/job.ts:186
budgetKey?
budgetKey?: string;Defined in: glide-mq/src/job.ts:207
Budget key for flow-level budget enforcement. Set when the job belongs to a budgeted flow.
cost?
cost?: number;Defined in: glide-mq/src/job.ts:202
data
data: D;Defined in: glide-mq/src/job.ts:184
deserializationFailed
deserializationFailed: boolean = false;Defined in: glide-mq/src/job.ts:271
Set to true when data or returnvalue could not be deserialized from Valkey. This typically indicates a serializer mismatch between the producer and consumer. When true, data is set to {} as D and returnvalue to undefined.
discarded
discarded: boolean = false;Defined in: glide-mq/src/job.ts:239
When true, the job will not be retried on failure regardless of attempts config. Set by calling discard() inside the processor.
expireAt?
expireAt?: number;Defined in: glide-mq/src/job.ts:203
failedReason
failedReason: string | undefined;Defined in: glide-mq/src/job.ts:188
fallbackIndex
fallbackIndex: number = 0;Defined in: glide-mq/src/job.ts:210
Current position in the fallback chain. 0 = original request, 1+ = fallback entries.
finishedOn
finishedOn: number | undefined;Defined in: glide-mq/src/job.ts:191
groupKey?
groupKey?: string;Defined in: glide-mq/src/job.ts:201
id
readonly id: string;Defined in: glide-mq/src/job.ts:182
name
readonly name: string;Defined in: glide-mq/src/job.ts:183
opts
readonly opts: JobOptions;Defined in: glide-mq/src/job.ts:185
orderingKey?
orderingKey?: string;Defined in: glide-mq/src/job.ts:199
orderingSeq?
orderingSeq?: number;Defined in: glide-mq/src/job.ts:200
parentId?
parentId?: string;Defined in: glide-mq/src/job.ts:193
parentIds?
parentIds?: string[];Defined in: glide-mq/src/job.ts:196
Additional parent IDs for DAG multi-parent jobs.
parentQueue?
parentQueue?: string;Defined in: glide-mq/src/job.ts:194
parentQueues?
parentQueues?: string[];Defined in: glide-mq/src/job.ts:198
Additional parent queues for DAG multi-parent jobs (parallel array to parentIds).
processedOn
processedOn: number | undefined;Defined in: glide-mq/src/job.ts:192
progress
progress: number | object;Defined in: glide-mq/src/job.ts:189
returnvalue
returnvalue: R | undefined;Defined in: glide-mq/src/job.ts:187
schedulerName?
schedulerName?: string;Defined in: glide-mq/src/job.ts:204
signals
signals: SignalEntry[] = [];Defined in: glide-mq/src/job.ts:233
Signals delivered to this job while it was suspended.
timestamp
timestamp: number;Defined in: glide-mq/src/job.ts:190
tpmTokens?
tpmTokens?: number;Defined in: glide-mq/src/job.ts:216
Tokens reported via reportTokens() for TPM rate limiting.
usage?
usage?: JobUsage;Defined in: glide-mq/src/job.ts:213
AI-specific usage metadata reported via reportUsage().
Accessors
currentFallback
Get Signature
get currentFallback():
| {
metadata?: Record<string, unknown>;
model: string;
provider?: string;
}
| undefined;Defined in: glide-mq/src/job.ts:314
The current fallback entry, or undefined when running the original request. fallbackIndex=0 means original (no fallback). On first failure, fallbackIndex becomes 1 and currentFallback returns fallbacks[0], etc.
Returns
| { metadata?: Record<string, unknown>; model: string; provider?: string; } | undefined
Methods
changeDelay()
changeDelay(newDelay): Promise<void>;Defined in: glide-mq/src/job.ts:726
Change the delay of this job. Supports delayed, waiting, and prioritized states. Setting delay to 0 promotes a delayed job immediately. Setting delay > 0 on a waiting/prioritized job moves it to the scheduled ZSet. Throws if the job is in an invalid state (active, completed, failed).
Parameters
| Parameter | Type |
|---|---|
newDelay | number |
Returns
Promise<void>
changePriority()
changePriority(newPriority): Promise<void>;Defined in: glide-mq/src/job.ts:706
Change the priority of this job. Supports waiting, prioritized, and delayed states. Setting priority to 0 moves a prioritized job back to the stream (waiting). Throws if the job is in an invalid state (active, completed, failed).
Parameters
| Parameter | Type |
|---|---|
newPriority | number |
Returns
Promise<void>
discard()
discard(): void;Defined in: glide-mq/src/job.ts:491
Mark this job so it will not be retried on failure. Call inside the processor before throwing to skip all remaining attempts.
Returns
void
getChildrenValues()
getChildrenValues(): Promise<Record<string, R>>;Defined in: glide-mq/src/job.ts:575
Read return values from all child jobs (for flow/parent-child patterns).
Returns
Promise<Record<string, R>>
getParents()
getParents(): Promise<object[]>;Defined in: glide-mq/src/job.ts:622
Read all parent references for this job (for DAG multi-parent patterns). Returns an array of { queue, id } for each parent. For single-parent jobs, returns an array with one element. For jobs with no parent, returns an empty array.
Returns
Promise<object[]>
getState()
getState(): Promise<string>;Defined in: glide-mq/src/job.ts:863
Read the current state from the job hash.
Returns
Promise<string>
isActive()
isActive(): Promise<boolean>;Defined in: glide-mq/src/job.ts:841
Check if this job is in the active state.
Returns
Promise<boolean>
isCompleted()
isCompleted(): Promise<boolean>;Defined in: glide-mq/src/job.ts:820
Check if this job is in the completed state.
Returns
Promise<boolean>
isDelayed()
isDelayed(): Promise<boolean>;Defined in: glide-mq/src/job.ts:834
Check if this job is in the delayed state.
Returns
Promise<boolean>
isFailed()
isFailed(): Promise<boolean>;Defined in: glide-mq/src/job.ts:827
Check if this job is in the failed state.
Returns
Promise<boolean>
isRevoked()
isRevoked(): Promise<boolean>;Defined in: glide-mq/src/job.ts:855
Check if this job has been revoked.
Returns
Promise<boolean>
isWaiting()
isWaiting(): Promise<boolean>;Defined in: glide-mq/src/job.ts:848
Check if this job is in the waiting state.
Returns
Promise<boolean>
log()
log(message): Promise<void>;Defined in: glide-mq/src/job.ts:322
Append a log line to this job's log list.
Parameters
| Parameter | Type |
|---|---|
message | string |
Returns
Promise<void>
moveToDelayed()
moveToDelayed(timestamp, nextStep?): Promise<never>;Defined in: glide-mq/src/job.ts:762
Pause an active job and resume it after the given UNIX timestamp in ms. Optionally updates job.data.step before yielding back to the worker.
This method must be called from inside a Worker processor.
Parameters
| Parameter | Type |
|---|---|
timestamp | number |
nextStep? | string |
Returns
Promise<never>
moveToFailed()
moveToFailed(err): Promise<void>;Defined in: glide-mq/src/job.ts:658
Move this job to the failed state. If attempts remain and backoff is configured, retries via the scheduled ZSet. Requires entryId to be set (set by Worker when processing).
Parameters
| Parameter | Type |
|---|---|
err | Error |
Returns
Promise<void>
moveToWaitingChildren()
moveToWaitingChildren(): Promise<never>;Defined in: glide-mq/src/job.ts:525
Pause an active job and wait for dynamically-added child jobs to complete. When all children finish, this job resumes and the processor is invoked again.
This method must be called from inside a Worker processor.
Returns
Promise<never>
promote()
promote(): Promise<void>;Defined in: glide-mq/src/job.ts:745
Promote a delayed job to waiting immediately. Removes from the scheduled ZSet, adds to the stream, sets state to 'waiting'. Throws if the job is not in the delayed state or does not exist.
Returns
Promise<void>
rateLimitGroup()
rateLimitGroup(duration, opts?): Promise<never>;Defined in: glide-mq/src/job.ts:790
Rate-limit this job's ordering group for the given duration (milliseconds). The current job is re-parked in the group queue (by default at the front) and the entire group is paused until the duration expires.
Can only be called from inside a Worker processor. Throws GroupRateLimitError which the worker catches internally.
Parameters
| Parameter | Type |
|---|---|
duration | number |
opts? | GroupRateLimitOptions |
Returns
Promise<never>
remove()
remove(): Promise<void>;Defined in: glide-mq/src/job.ts:697
Remove this job from all data structures.
Returns
Promise<void>
reportTokens()
reportTokens(count): Promise<void>;Defined in: glide-mq/src/job.ts:442
Report tokens consumed by this job for TPM (tokens-per-minute) tracking. The count is stored in the job hash field tpmTokens. After job completion, the Worker reads this value and increments the TPM counter if a tokenLimiter is configured.
Calling multiple times overwrites the previous value.
Parameters
| Parameter | Type |
|---|---|
count | number |
Returns
Promise<void>
reportUsage()
reportUsage(usage): Promise<void>;Defined in: glide-mq/src/job.ts:360
Report AI-specific usage metadata for this job. Persists to the job hash and emits a 'usage' event on the events stream.
Callable from any context (inside a processor, externally via getJob(), etc.). If totalTokens is not provided, it is auto-computed as the sum of all values in tokens. Calling multiple times overwrites the previous usage data.
Parameters
| Parameter | Type |
|---|---|
usage | JobUsage |
Returns
Promise<void>
retry()
retry(): Promise<void>;Defined in: glide-mq/src/job.ts:805
Retry this failed job by moving it back to the scheduled ZSet with a score of now (so it gets promoted immediately on the next promote cycle). Throws if the job does not exist or is not in the failed state.
Returns
Promise<void>
storeVector()
storeVector(field, embedding): Promise<void>;Defined in: glide-mq/src/job.ts:1015
Store a vector embedding in this job's hash field. The vector is stored as a raw Float32Array buffer suitable for Valkey Search vector indexing.
Parameters
| Parameter | Type | Description |
|---|---|---|
field | string | Hash field name where the vector is stored (must match the index schema). |
embedding | Float32Array<ArrayBufferLike> | number[] | The vector as a number[] or Float32Array. |
Returns
Promise<void>
stream()
stream(chunk): Promise<string>;Defined in: glide-mq/src/job.ts:453
Append a chunk to this job's streaming channel. Each chunk is a flat string-keyed object appended via XADD to a per-job stream. Returns the Valkey stream entry ID.
Parameters
| Parameter | Type |
|---|---|
chunk | Record<string, string> |
Returns
Promise<string>
streamChunk()
streamChunk(type, content?): Promise<string>;Defined in: glide-mq/src/job.ts:481
Convenience method for streaming typed LLM chunks. Wraps stream() with { type, content } fields.
Parameters
| Parameter | Type |
|---|---|
type | string |
content? | string |
Returns
Promise<string>
Example
await job.streamChunk('reasoning', 'Let me think about this...');
await job.streamChunk('content', 'The answer is 42.');
await job.streamChunk('done');suspend()
suspend(opts?): Promise<never>;Defined in: glide-mq/src/job.ts:551
Suspend this job to wait for an external signal (human-in-the-loop). The processor is interrupted and the job moves to 'suspended' state. When a signal arrives via Queue.signal(), the job re-enters the stream and the processor is re-invoked from scratch with job.signals populated.
Optionally provide an onResume callback that runs instead of the main processor when the job resumes on the same worker (best-effort).
This method must be called from inside a Worker processor.
Parameters
| Parameter | Type |
|---|---|
opts? | SuspendOptions & object |
Returns
Promise<never>
updateData()
updateData(data): Promise<void>;Defined in: glide-mq/src/job.ts:346
Replace the data payload of this job.
Parameters
| Parameter | Type |
|---|---|
data | D |
Returns
Promise<void>
updateProgress()
updateProgress(progress): Promise<void>;Defined in: glide-mq/src/job.ts:333
Update the progress of this job. Persists to the job hash and emits a progress event.
Parameters
| Parameter | Type |
|---|---|
progress | number | object |
Returns
Promise<void>
waitUntilFinished()
waitUntilFinished(pollIntervalMs?, timeoutMs?): Promise<"completed" | "failed">;Defined in: glide-mq/src/job.ts:873
Wait until the job reaches a terminal state (completed or failed). Polls the job hash state at the given interval. Returns the final state.
Parameters
| Parameter | Type | Default value |
|---|---|---|
pollIntervalMs? | number | 500 |
timeoutMs? | number | 30000 |
Returns
Promise<"completed" | "failed">