SuperAPI AI 工具集

oban-essentials

编程与开发

查看项目

更新于 10-15 22:16

技能介绍

用途:在编写任何 Oban worker 或入队任务前使用的规范与流程指南,遵循 Functional Core / Imperative Shell,把 worker 与流水线视为边界:取 ID、调用纯核心、返回 tagged tuple。

主要能力:覆盖 worker 定义(显式 queue、max_attempts、unique),入队(用 Oban.insert/1 并处理错误),返回值约定,队列与并发配置,幂等性,唯一任务,schedule_in 与 Cron 周期任务,Oban.Testing 测试。

必要用法:新增 worker 时依次为:在 config/config.exs 定义队列名与并发;用 Oban.Worker 显式声明 queue 与 max_attempts;在 context 函数中调用 Oban.insert/1 入队,而非 LiveView;用 Oban.Testing 的 assert_enqueued 与 perform_job 覆盖所有返回路径。perform/1 只返回 {:ok, _}、{:error, _}、{:cancel, _}、{:snooze, _},预期失败不要 raise。

规则:worker 必须幂等;任务参数只存 ID,worker 内取最新数据,不放大对象;不要把 domain 逻辑埋进 worker;不要在 web 层直接入队;可重复入队的任务设置 unique。测试使用 perform_job/2 而非 perform/1,测试配置用 testing: :inline。

适用场景:Elixir/Phoenix 项目中处理邮件、导入、报表等后台任务。

限制:资料未提供安装命令、版本要求、收费或平台信息,均暂未提供。