# JobQueue.push() method · @imqueue/job

Source: https://imqueue.org/api/job/latest/job.jobqueue.push/
Published: 2026-07-31
Author: @imqueue maintainers (https://github.com/imqueue)
Package: @imqueue/job 3.0.3 — generated reference, not hand-written

Enqueues one job, optionally delayed or time-limited, refusing to enqueue without a handler.

**Signature:**

```typescript
push(job: T, options?: PushOptions): JobQueue<T>;
```

## Parameters


| Parameter | Type | Description |
| --- | --- | --- |
| job | T | the job body, of whatever type this queue carries |
| options | [PushOptions](https://imqueue.org/api/job/latest/job.pushoptions/) | _(Optional)_ when the job may run, and how long it stays retriable |


**Returns:**

[JobQueue](https://imqueue.org/api/job/latest/job.jobqueue/)<T>

this queue, for chaining

## Exceptions

TypeError if no handler has been registered with [JobQueue.onPop()](https://imqueue.org/api/job/latest/job.jobqueue.onpop/)

## Remarks

The handler check is the only difference from [JobQueuePublisher.push()](https://imqueue.org/api/job/latest/job.jobqueuepublisher.push/), whose caveats all apply here too — most importantly that a successful call means the job was handed off, not that the broker accepted it. A broker failure is logged, not thrown.

