【问题标题】:Rails and ActiveJobs - can I 'join' them like threads?Rails 和 ActiveJobs - 我可以像线程一样“加入”它们吗?
【发布时间】:2020-04-21 17:43:44
【问题描述】:

我正在寻找一种设计模式,它可以让我“加入”几个 ActiveJobs,这样当它们都完成后,我可以继续执行另一项任务。

假设我有工作 A、B 和 C,需要不同的时间才能完成。当他们都完成后,我想开始工作 D。

这是一种常见的设计模式吗?我可以用什么来实现这一目标?我想到了数据库中的一个表,它只记录要完成的作业总数,然后随着每次完成它递减计数器,当它为零时,任务 D 排队。但我认为计数器可能存在问题 - 我需要在读写之间锁定表?

(这是 Rails 6 和 Sidekiq 6)

谢谢...

【问题讨论】:

    标签: sidekiq ruby-on-rails-6


    【解决方案1】:

    如果您使用 Sidekiq,这称为批处理。这是 Sidekiq Pro 中的商业功能。

    https://github.com/mperham/sidekiq/wiki/Batches

    【讨论】:

    • 谢谢,我看到还有一个第三方gem,叫做sidekiq-batch,它做类似的工作。
    • 那个 gem 有很多错误并且不向它的用户提供支持。我的批次一年多没有发现错误,我在这里支持你。一分钱一分货。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2023-02-26
    相关资源
    最近更新 更多