浅浅升级一下
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 8m8s

This commit is contained in:
2026-05-06 14:41:14 +08:00
parent b0bd37ec12
commit 3a2e3f2571
16 changed files with 1490 additions and 106 deletions

View File

@@ -44,26 +44,35 @@ INSERT INTO tb_polling_concurrency_config (task_type, max_concurrency, descripti
### 3. Worker 多实例部署
部署多个 Worker 实例分担负载
多实例扩容时,必须拆分 Worker 角色,禁止直接复制多个完整 Worker 进程。推荐保留 `1 leader + N consumer`
```yaml
# docker-compose.yml 示例
services:
worker-1:
worker-leader:
image: junhong-cmp-worker
environment:
- WORKER_ID=1
worker-2:
- JUNHONG_WORKER_ROLE=leader
- JUNHONG_WORKER_INSTANCE_NAME=worker-leader-1
worker-consumer-1:
image: junhong-cmp-worker
environment:
- WORKER_ID=2
worker-3:
- JUNHONG_WORKER_ROLE=consumer
- JUNHONG_WORKER_INSTANCE_NAME=worker-consumer-1
worker-consumer-2:
image: junhong-cmp-worker
environment:
- WORKER_ID=3
- JUNHONG_WORKER_ROLE=consumer
- JUNHONG_WORKER_INSTANCE_NAME=worker-consumer-2
```
注意:只需一个实例运行调度器,其他实例只处理任务。
说明:
- `leader` 负责轮询初始化、轮询调度、Asynq 定时任务调度等单例职责
- `consumer` 只负责 Asynq 队列消费,适合横向扩容
- 单实例部署默认使用 `all`,行为等价于历史版本
- 不要直接启动多个 `all` 或多个 `leader`,否则会重复扫库、重复调度、重复入队
- 需要提升吞吐时,优先增加 `consumer` 数量,而不是复制完整 Worker
- 本期仅完成角色拆分,不包含 Redis Leader 锁、自动选主、任务唯一性去重,这些作为第二期增强处理
### 4. 检查间隔优化