feat(server): 完成 F19~F19d pg-boss 作业系统迁移\n\n- 引入 pg-boss(JOB_DRIVER=pgboss)并保留 cron 回滚\n- OCR/委派回收/超期归档改由 pg-boss schedule + work 执行\n- OCR_PROVIDER=off 自动 unschedule ocr.tick\n- 更新 trialrun env/compose/runbook 与 README,并推进 CSV 状态为 DONE

这个提交包含在:
2026-02-09 20:05:01 +08:00
父节点 f233a0d5bc
当前提交 dff1aabc26
共修改 11 个文件,包含 249 行新增和 12 行删除
+12
查看文件
@@ -80,6 +80,18 @@ npm run seed:trialrun
- `EMAIL_FROM`(发件人地址)
- `EMAIL_BASE_URL`(可选,邮件内“查看详情”链接的站点前缀;为空则尝试使用 `APP_ORIGIN` 的第一个值)
### 2.3.3 作业系统(cron vs pg-boss)(F19~F19d)
- 默认:`JOB_DRIVER=cron`(同进程 node-cron 调度)
- 可选升级:`JOB_DRIVER=pgboss`(Postgres 队列,适配单机/多进程;避免引入 Redis)
- `PG_BOSS_SCHEMA`(默认 `pgboss`)
- `JOBS_ENABLED=false` 可整体关闭作业(仅用于排障/紧急回滚)
- 目前迁移的作业:
- `ocr.tick`(受 `OCR_PROVIDER` 控制,off 时不调度)
- `delegation.revoke-expired`
- `invoice.archive-unused`
- 回滚策略:
- 将 `JOB_DRIVER` 切回 `cron`(无需 schema 迁移回滚,风险低)
### 2.4 启动服务
```bash
cd /home/shunli/Projects/hyb-oa/server