通知与工作流
保存站用两套通知解决不同问题:站点级公告/通知负责向所有访客展示运营信息,用户通知负责把与当前登录用户相关的审核结果送达本人。
站点公告
首页公告卡片展示当前公告。顶部通知中心可以展示启用中的站点通知,并记录登录用户是否已读。公告和通知由具备相应权限的管理员维护。
用户通知
当前最重要的用户通知来源是删除申请审核:
- 通过:通知说明目标文章或剪贴板已删除;
- 拒绝:通知说明申请未通过;
- 管理员填写处理备注时,通知会附带备注。
用户可以读取分页通知、查看未读数量、标记部分或全部为已读。
工作流是什么
保存、RAG、搜索重建等复杂操作不会在一次 HTTP 请求内同步完成,而是创建工作流,再由 BullMQ 队列中的任务执行。
一个工作流包含:
- 唯一工作流 ID;
- 多个有依赖关系的任务;
- 等待、运行、完成、失败或过期状态;
- 供前端展示的报告任务;
- 可选的去重键,避免重复执行同一目标。
实时状态
前端通过 Socket.IO 加入任务房间并接收更新。连接恢复后,服务器可回放任务终态。工作流跟踪页也能通过 HTTP 查询当前状态,因此浏览器短暂断线不代表任务被取消。
失败、重试与过期
- 保存失败时,内容页会显示原因并提供重试;
- 工作流失败原因会被归一化,避免只显示不可读对象;
- 终态工作流和任务会按配置清理;
- 重启恢复会处理仍处于活动状态的记录;
- 同一文章或剪贴板的活跃保存工作流可能被复用。
反复点击不会让不可访问内容变得可访问,反而可能增加队列压力。遇到持续失败,应先判断源站状态和错误类型。