概要
面向论文检索服务的全栈任务平台,提供认证、任务提交、Worker 共享表对接、状态同步、结果下载、额度流水、支付宝升级与管理后台。
业务价值
在甲方 Worker 不接入用户系统的前提下,交付可验收的用户侧任务平台,降低跨团队联调和后续生产化风险。
工程深度
覆盖 FastAPI 分层、异步 SQLAlchemy、PostgreSQL 触发器、LISTEN/NOTIFY、SSE、额度流水、支付宝回调、React 功能分层和自动化回归。
证据来源
本地仓库 README / docs/架构说明 / docs/交付文档 / apps/api / apps/web / tests
仓库 · 置信度 高 · 验证时间 2026-05-17
- 证据级别:严格复核(核心区仅展示可复核指标)
- 来源类型:仓库/代码记录
- 来源链接:未提供公开链接,需结合履历或交付记录复核
- 验证时间:2026-05-17(距今 0 天,时效性高)
判定原因:判定为高置信度:按严格口径整理,可回溯到仓库或代码记录,验证时间距今 0 天。
背景
用户需要提交论文检索任务并跟踪结果,但真正执行检索的 Worker 由甲方维护,只通过共享数据库表与平台对接。
挑战
异步任务跨系统执行,状态同步、终态契约、结果链接安全和额度扣减都需要由平台侧兜住,否则容易出现进度不可见、终态回退或重复扣费。
行动与成果
解决方案
- 用户侧闭环:交付登录注册、任务工作台、结果下载、个人中心、额度流水、支付升级和管理后台。
- Worker 契约:使用 Alembic 迁移加入 check constraint 与触发器,约束状态流转、终态完成时间和成功任务结果数。
- 状态同步:通过 PostgreSQL
pg_notify + asyncpg LISTEN 唤醒 SSE,前端保留轮询兜底。 - 额度治理:成功任务再扣减额度,结合
SELECT ... FOR UPDATE、唯一额度事件和测试覆盖处理并发。
成果
形成测试验收版论文检索任务平台,覆盖用户认证、任务提交、进度同步、结果下载、额度流水、支付宝升级和管理后台。
关键指标
使用 FastAPI、SQLAlchemy、Alembic、PostgreSQL、Redis 和 React/Vite 搭建用户端、管理端、任务、支付和额度模块。 通过数据库约束与触发器固化 Worker 对 `tasks` 表的状态回写契约,禁止终态回退并要求成功任务具备结果数。 实现 LISTEN/NOTIFY、按任务 SSE、多任务 SSE、全局活动任务 SSE 与轮询兜底,让用户侧能持续感知检索进度。 将任务额度扣减延后到成功完成后执行,并通过锁、唯一额度事件和并发测试避免失败任务或重复通知误扣。 技术栈
PythonFastAPIAsyncIOSQLAlchemyPostgreSQLRedisAlembicReact 19TypeScriptViteSSEPlaywright