# JobQueuePublisher class · @imqueue/job

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

The producing end of a job queue: pushes jobs and never handles them.

Use this in the process that creates work — an API, a scheduler, a webhook receiver — and pair it with a [JobQueueWorker](https://imqueue.org/api/job/latest/job.jobqueueworker/) constructed with the same [JobQueueOptions.name](https://imqueue.org/api/job/latest/job.jobqueueoptions.name/). It opens a publisher-mode connection only, so it cannot receive jobs even by accident.

**Signature:**

```typescript
export declare class JobQueuePublisher<T> extends BaseJobQueue<JobQueuePublisher<T>, T> implements AnyJobQueuePublisher<JobQueuePublisher<T>, T> 
```
**Extends:** [BaseJobQueue](https://imqueue.org/api/job/latest/job.basejobqueue/)<[JobQueuePublisher](https://imqueue.org/api/job/latest/job.jobqueuepublisher/)<T>, T>

**Implements:** [AnyJobQueuePublisher](https://imqueue.org/api/job/latest/job.anyjobqueuepublisher/)<[JobQueuePublisher](https://imqueue.org/api/job/latest/job.jobqueuepublisher/)<T>, T>

## Example


```typescript
import { JobQueuePublisher } from '@imqueue/job';

const publisher = new JobQueuePublisher<Email>({ name: 'Email' });

publisher.push({ to: 'a@b.c', subject: 'Hi' });
publisher.push({ to: 'a@b.c', subject: 'Tomorrow' }, { delay: 86400000 });
```

## Constructors


| Constructor | Modifiers | Description |
| --- | --- | --- |
| [(constructor)(options)](https://imqueue.org/api/job/latest/job.jobqueuepublisher._constructor_/) |  | Creates a publisher-mode queue over the named job queue. |


## Methods


| Method | Modifiers | Description |
| --- | --- | --- |
| [push(job, options)](https://imqueue.org/api/job/latest/job.jobqueuepublisher.push/) |  | Enqueues one job, optionally delayed or time-limited. |

