> For the complete documentation index, see [llms.txt](https://doc.duaer.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.duaer.com/zh/hosting/scaling/queue-mode.md).

# 在 Duaer 里启用队列模式

按需要用不同模式跑 Duaer。队列模式可扩展性最好。
## 怎么工作

队列模式下有多个 Duaer 实例：主实例接收触发并生成执行（但不跑），worker 执行。中间用 Redis 维护待执行队列。

流程：主实例处理定时与 webhook → 把执行 ID 交给 Redis → worker 领取 → 从数据库取数字组织信息并执行 → 写回结果并通知主实例。

数据库请用 Postgres，不要让多个进程写同一 SQLite 文件。见 [数据库](/zh/hosting/configuration/supported-databases-settings.md)。

## 为 worker 设置加密密钥

主实例的加密密钥必须与所有 worker 相同，否则 worker 解不开数据库中的凭证。

```
export DUAER_ENCRYPTION_KEY=<main_instance_encryption_key>
```

完整写法见 [设置自定义加密密钥](/zh/hosting/configuration/configuration-examples/encryption-key.md)。

## 查看正在运行的 worker <a href="#view-running-workers" id="view-running-workers"></a>

界面上查看正在运行的 worker 时链到这一节。worker 未启动或连不上 Redis 时，执行会停在排队，主进程仍可能显示在线。确认 worker 与主进程使用同一加密密钥与数据库配置。

较新版本中，手动执行也会放到 worker。内存与并发见 [并发](/zh/hosting/scaling/concurrency-control.md) 与 [内存](/zh/hosting/scaling/memory-errors.md)。
## Questions

### 队列模式和普通模式差在哪？

在 Duaer 里，普通模式在同一进程接请求并执行。队列模式把执行交给 worker，主进程排队，中间用 Redis。所有 worker 须同一 DUAER_ENCRYPTION_KEY。

