# RedisQueue.start() method · @imqueue/core

Source: https://imqueue.org/api/core/latest/core.redisqueue.start/
Published: 2026-08-04
Author: @imqueue maintainers (https://github.com/imqueue)
Package: @imqueue/core 3.3.2 — generated reference, not hand-written

Initializes and starts current queue routines: opens the writer (and, in [IMQMode.BOTH](https://imqueue.org/api/core/latest/core.imqmode/) or [IMQMode.WORKER](https://imqueue.org/api/core/latest/core.imqmode/) mode, the reader), joins watcher election and starts the periodic watcher check.

**Signature:**

```typescript
start(): Promise<RedisQueue>;
```
**Returns:**

Promise<[RedisQueue](https://imqueue.org/api/core/latest/core.redisqueue/)>

this queue instance

## Exceptions

TypeError when the queue was constructed without a name

## Remarks

Idempotent — a second call on a started queue resolves immediately — and the queue can be restarted after [RedisQueue.stop()](https://imqueue.org/api/core/latest/core.redisqueue.stop/).

Unless [IMQOptions.handleSignals](https://imqueue.org/api/core/latest/core.imqoptions.handlesignals/) is false, this installs process-level SIGTERM/SIGINT/SIGABRT handlers that release watcher locks and then exit the process without waiting for in-flight handlers.

If watcher initialization fails the returned promise rejects, but the writer connection, the instance registration and any acquired watcher lock remain in place — call [RedisQueue.destroy()](https://imqueue.org/api/core/latest/core.redisqueue.destroy/) to clean up after a failed start.

