Oban

🧪 Elixir 后台作业编排专家

专业级 Elixir 背景任务编排工具,支持队列配置、指数退避重试、唯一性约束、Cron 定时任务及批量作业,Oban Pro 扩展工作流依赖与分块处理能力。

收藏
5.3k
安装
2.1k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Oban Designer 是一款面向 Elixir/Phoenix 生态的后台作业编排技能,核心功能涵盖:

1. Worker 定义与生命周期管理——通过 Oban.Worker 行为实现业务逻辑,支持六种返回状态(:ok:error:cancel:snooze:discard 等)精确控制作业流转;
2. 队列与并发模型——可声明多队列(mailers/webhooks/media 等),按 I/O 密集或 CPU 密集场景分配并发槽位(concurrency);

3. 重试策略——默认指数退避 attempt^4 + attempt,支持自定义 backoff/1 回调与动态超时;

4. 唯一性约束——基于周期、字段键、状态组合的幂等插入,防止重复任务;

5. Cron 调度——集成 Oban.Plugins.Cron 实现类 Unix crontab 的定时任务;

6. Oban Pro 扩展——提供 Batch(批量回调)、Workflow(DAG 依赖)、Chunk(聚合消费)等企业级模式。

显著优点

  • BEAM 虚拟机亲和:利用 Erlang/Elixir 的进程隔离与容错特性,单节点即可支撑高并发;
  • 数据库持久化:作业状态存于 PostgreSQL,天然支持跨节点集群与优雅重启;
  • 可观测性完善:内置 Telemetry 钩子,可对接 Prometheus/Grafana 监控延迟、队列深度、错误率;
  • 测试友好:manual:inline 测试模式,支持同步断言与异步模拟。

潜在局限

  • 强依赖 PostgreSQL:需额外维护作业表迁移与索引,对无 SQL 场景不适用;
  • 队列深度风险:高并发队列若消费滞后,可能堆积影响数据库性能;
  • Cron 单点执行:默认仅领导者节点执行定时任务,需自行保障高可用;
  • Pro 功能闭源:Batch/Workflow/Chunk 需商业授权,增加成本。

适合人群

  • 使用 Elixir/Phoenix 构建需异步处理、定时任务、可靠消息投递的中大型后端系统;
  • 需要替代 Sidekiq、Celery、Bull 等队列方案的 Erlang VM 技术栈团队。

常规风险

  • 作业幂等设计不当导致重复副作用(如重复扣款、重复邮件);
  • 超时与重试配置失衡引发级联失败或数据不一致;
  • 敏感参数序列化进入 args 字段,若日志或监控未脱敏则泄露隐私。

Oban 内容

references文件夹
手动下载zip · 8.4 kB
testing-oban.mdtext/markdown
请选择文件