【问题标题】:How running second worker, during the first worker?在第一个工人期间如何运行第二个工人?
【发布时间】:2015-04-15 19:46:21
【问题描述】:

我有一个包含两列 foobar 的表,我有一个 sidekiq 工作人员,他在 foo 中记录对象,还有一个从 foo 获取对象的工作人员将它们转换并放入 @ 987654325@.

第二个工作人员在第一个工作人员成功完成后启动,但我想在几秒钟后运行它作为启动第一个守护程序。他们在同时工作

我尝试使用 sidekiq-superworker gem,然后这样做

Superworker.define(:MySuperworker) do
  FirstWorker do
    SecondWorker
  end
end

但是第二个工人是在第一个工人完全完成后开始的,怎么办?

【问题讨论】:

  • 为什么不合并两个工作逻辑?您无法确保 2 个工作人员始终并行运行

标签: ruby-on-rails sidekiq


【解决方案1】:

作业是异步的,因此您无法准确控制它们何时运行,但您可以控制它们何时创建:

class FirstWorker
  def perform
    # create foo
    SecondWorker.perform_async(...)
    # do more work
  end
end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-25
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多