通过设计使您的后台任务可中断和可恢复。
认识 Iteration, 这是一个扩展插件,用于 ActiveJob,它使您的作业可以中断和恢复,并保存作业所做的所有进展(即作业的检查点)。
想象一下以下的工作:
class SimpleJob (cursor) { enumerator_builder.active_record_on_records(Shop.all, cursor: cursor) },
->(shop, cursor) { enumerator_builder.active_record_on_records(shop.products, cursor: cursor) },
->(_shop, product, cursor) { enumerator_builder.active_record_on_batch_relations(product.product_variants, cursor: cursor) }
],
cursor: cursor
)
end
def each_iteration(product_variants_relation)
# do something
end
end迭代内置支持大多数流行的队列适配器,以支持优雅中断。不需要额外配置。
Job-iteration 目前支持以下队列适配器 (按实现顺序排列):
Active Job 是迭代的主要要求。对于在 Sidekiq 中没有 Active Job 的迭代,请参阅 Sidekiq 迭代。
暂无开放 Issues,或尚未同步最近议题。