Background Job
后台任务
后台任务是服务器在页面或 API 回复之外,另外执行的任务。回复可以先结束,任务再继续完成。
accepted request -> persisted job ID -> runner attempt -> terminal result; bounded retryGET /jobs/job_482accepted request -> persisted job ID -> runner attempt -> terminal result; bounded retryJOB另一个例子
报表请求会建立任务 `report-204`,并返回状态链接。Kubernetes Job 会执行报表,直到成功或达到重试上限,再记录最终状态并停止。
主要部分
- 01任务标识与已保存输入
- 02已接受或排队状态
- 03执行器与尝试次数
- 04进度或活动信号
- 05成功或失败状态
- 06结果与恢复方式
什么时候用
任务较慢,而且能在回复用户后继续完成时,可以使用后台任务。要保存输入、任务标识、状态和最终结果。
什么时候不要用
回复时就需要结果时,不要改用后台任务。执行器可能再次尝试失败的任务。扣款、发邮件或其他操作要有防重复规则,才能安全重做。
代码里的名称
accepted request -> persisted job ID -> runner attempt -> terminal result; bounded retry 上线前要检查
检查接口约定、任何情况下都不能破坏的规则、授权与输入限制。测试重试、重复执行只生效一次、超时与部分失败。验证数据完整性、兼容性、监控、恢复与回到上一版。
预期结果:为这套系统设计或检查 后台任务 (Background Job),并让数据保持正确、安全且容易维护。 用户场景:报表请求会建立任务 `report-204`,并返回状态链接。Kubernetes Job 会执行报表,直到成功或达到重试上限,再记录最终状态并停止。 技术概念或控制措施:后台任务 (Background Job)。 适用理由:任务较慢,而且能在回复用户后继续完成时,可以使用后台任务。要保存输入、任务标识、状态和最终结果。 不应使用的情况:回复时就需要结果时,不要改用后台任务。执行器可能再次尝试失败的任务。扣款、发邮件或其他操作要有防重复规则,才能安全重做。 工程要求:定义输入、输出、接口约定,以及任何情况下都不能破坏的规则。说明授权与输入检查范围。定义失败、超时、重试和重复执行只生效一次的规则。也要定义数据迁移与兼容限制。 运营要求:加入监控信号与隐藏敏感数据的日志。设置容量上限并写好操作手册。测试恢复与回到上一版的流程。 验收标准:接口约定与失败路径测试通过。重试或部分失败时,数据与授权规则仍正确。性能上限、监控、恢复与回到上一版的方法都已验证。 证据与限制(证据边界):没有一份官方标准能涵盖全部内容。不同团队、平台或框架的用法可能不同。 待确认:程序运行环境、数据位置、流量形态、数据一致需求和安全边界。也要确认兼容周期、服务目标(SLO)与恢复上一版的限制。
检查这份需求
请 AI 编程助手检查当前如何使用 后台任务 (Background Job)。 定义:后台任务是服务器在页面或 API 回复之外,另外执行的任务。回复可以先结束,任务再继续完成。 生产环境检查:检查接口约定、任何情况下都不能破坏的规则、授权与输入限制。测试重试、重复执行只生效一次、超时与部分失败。验证数据完整性、兼容性、监控、恢复与回到上一版。 修改程序前,先列出看到的证据、缺口、严重程度,以及最小且安全的修正。