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

Source: https://imqueue.org/api/job/latest/job.jobqueuepublisher.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.

**Signature:**

```typescript
push(job: T, options?: PushOptions): JobQueuePublisher<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:**

[JobQueuePublisher](https://imqueue.org/api/job/latest/job.jobqueuepublisher/)<T>

this queue, for chaining

## Remarks

Fire-and-forget, and worth being deliberate about: this returns synchronously without waiting for the broker to accept the job, and a failed enqueue is reported only by logging `[JobQueue] push error:` through [JobQueueOptions.logger](https://imqueue.org/api/job/latest/job.jobqueueoptions.logger/). It neither throws nor hands back anything to await, so a caller that must know the job was really enqueued cannot learn it from here — watch the log, or check for the job's effects.

There is no need to `start()` a publisher first; the underlying send opens the connection on demand.

