如何分离 Workers

将 Worker 从主应用(APP)中分离部署的好处:

  • 可用性:主应用保持轻量,Worker 可独立扩展。
  • 安全性:Worker 无法直接访问 Redis 和数据库,在安全事件中可降低影响范围。
要创建 Worker 令牌,使用本地 CLI 命令生成 JWT,并用主应用服务器的 `AP_JWT_SECRET` 进行签名。步骤如下: 1. 打开终端并导航到仓库根目录。 2. 运行命令:`npm run workers token`。 3. 根据提示输入 JWT 密钥(应与主应用服务器使用的 `AP_JWT_SECRET` 相同)。 4. 生成的令牌将显示在终端中,复制并用于下一步。 在 Worker 机器的 `.env` 文件中定义以下环境变量: - 将 `AP_CONTAINER_TYPE` 设置为 `WORKER` - 指定 `AP_FRONTEND_URL` - 提供 `AP_WORKER_TOKEN` 为 Worker 配置持久化卷以缓存工作流和 Pieces。首次未缓存执行 Pieces 和工作流时会非常慢,使用持久化卷可显著提高执行速度。
在 Docker 配置中添加以下卷映射:
```yaml
volumes:
  - <your path>:/usr/src/app/cache
```
注意:此配置适用于每个 Worker 挂载一个卷,不能跨多个 Worker 共享。
启动 Worker 机器并提供生成的令牌。 在平台管理控制台的 "基础架构 -> Workers" 中验证 Worker 是否可见。 在 APP 机器上,将 `AP_CONTAINER_TYPE` 设置为 `APP`。