百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
J

job-iteration

> 编程语言
开源

通过设计使您的后台任务可中断和可恢复。

1.3K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

通过设计使您的后台任务可中断和可恢复。

Job Iteration API 介绍 Iteration 是一个扩展 ActiveJob,使您的作业可以中断和恢复,并保存作业所做的所有进度(也称为作业的检查点)。 背景 设想以下作业: ruby class SimpleJob(Cursor) { enumeratorbuilder.activerecordonrecords(Shop.all, Cursor: Cursor) }, -(shop, Cursor) { enumeratorbuilder.activerecordonrecords(shop.products, Cursor: Cursor) }, -(shop, product, Cursor) { enumeratorbuilder.activerecordonbatchrelations(product.productvariants, Cursor: Cursor) } ], Cursor: Cursor ) end def eachiteration(productvariantsrelation) # do something end end Iteration 从底层就针对最流行的队列适配器进行了支持,以支持优雅的中断。不需要额外的配置。 支持的依赖项 Job-iteration 目前支持以下队列适配器(按实现顺序排列): - Resque - Sidekiq - GoodJob - Solid Queue - Amazon SQS - Delayed::Job 它支持以下平台: - Ruby 3.1 及更高版本 - Rails 7.1 及更高版本 对于已经到达生命周期末期的旧平台,如果维护向后兼容性麻烦,可能会偶尔不再支持。 指南 Iteration: 它是如何工作的 Job 参数语义 最佳实践 编写自定义枚举器 限流 平行迭代 如需详细文档,请参阅 rubydoc。 要求 Active Job 是 Iteration 的主要要求。对于 Sidekiq 中不使用 Active Job 的迭代,请参阅 Sidekiq Iteration。 API Iteration 作业必须响应 buildenumerator 和 eachiteration 方法。 buildenumerator 必须返回一个 Enumerator 对象,该对象必须尊重 Cursor 值。 Sidekiq 适配器 在 Sidekiq 上运行迭代作业应该使用默认配置。最重要的设置是 Sidekiq 的超时选项,默认为 25 秒。这允许最后的 eachiteration 完成并优雅地关闭。 Resque 适配器 对于 Iteration 与 Resque 协作工作,需要一些配置假设。GRACEFULTERM 必须启用(使作业能够优雅中断),并且建议禁用 FORKPERJOB(设置为 false)。 常见问题 为什么我不能在 #perform 方法中迭代并做我想做的事情呢?您可以这样做,…

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

核心特点

  • •Solid Queue
  • •Amazon SQS
  • •Delayed::Job
  • •Ruby 3.1 and later
  • •Rails 7.1 and later
  • •Iteration: how it works
  • •Job argument semantics
  • •Best practices
  • •Writing custom enumerator
  • •Throttling

> 标签

Ruby

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言