# ClusteredRedisQueue.(constructor) · @imqueue/core

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

Creates a clustered queue.

**Signature:**

```typescript
constructor(
    name: string, options?: Partial<IMQOptions>, _mode?: IMQMode);
```

## Parameters


| Parameter | Type | Description |
| --- | --- | --- |
| name | string | queue name, used as the queue name for every per-host queue in the cluster |
| options | Partial<[IMQOptions](https://imqueue.org/api/core/latest/core.imqoptions/)> | _(Optional)_ queue options; must supply [IMQOptions.cluster](https://imqueue.org/api/core/latest/core.imqoptions.cluster/), [IMQOptions.clusterManagers](https://imqueue.org/api/core/latest/core.imqoptions.clustermanagers/), or both |
| \_mode | [IMQMode](https://imqueue.org/api/core/latest/core.imqmode/) | _(Optional)_ accepted only for [IMessageQueueConstructor](https://imqueue.org/api/core/latest/core.imessagequeueconstructor/) signature compatibility and ignored: the underlying queues always run in [IMQMode.BOTH](https://imqueue.org/api/core/latest/core.imqmode/) |


## Exceptions

TypeError when neither `cluster` nor a non-empty `clusterManagers` is supplied

## Remarks

Construction is not inert. One [RedisQueue](https://imqueue.org/api/core/latest/core.redisqueue/) is created per static cluster entry, and every cluster manager is initialized immediately — so dynamically discovered servers can join before [ClusteredRedisQueue.start()](https://imqueue.org/api/core/latest/core.clusteredredisqueue.start/) is ever called.

Cluster entries contribute only `id`, `host` and `port`. All other connection settings, including `username` and `password`, are inherited from the top-level options, so per-server credentials in a cluster entry are ignored.

