【问题标题】:Can I redirect a failed sidekiq worker for investigation?我可以重定向失败的 sidekiq 工作人员进行调查吗?
【发布时间】:2021-01-22 13:46:05
【问题描述】:

我将 Sidekiq 与我的 Rails 应用程序一起使用,并且有大约 30 名工作人员根据用户在 Rails 应用程序中单击的任务以随机顺序启动。有时,sidekiq 作业失败,我必须关闭 sidekiq 并手动调查错误,从而中断所有工作人员(由该用户和任何其他用户启动)

我刚刚实现了一个中间件,这样每次sidekiq作业失败时我终于可以调用一个方法;但是,现在我想知道是否有一种方法可以在 不同 队列中重新运行该作业(比如说“retry_queue”)。

现在,我的 sidekiq 工作人员是这样开始的:

class TestingWorker
  include Sidekiq::Worker
  sidekiq_options queue: Rails.env.to_sym

这基本上使用环境正在运行的任何队列(例如开发或生产)。但是,鉴于此设置或任何其他设置,我不确定如何实现我的目标。

所以我的问题是:

  1. 如何将失败的 sidekiq 作业从捕获失败的 sidekiq 工作人员的中间件方法重定向到另一个队列?
  2. 重定向到另一个队列后,如何重新设计 sidekiq 作业来理解这一点?

理想情况下,如果我能以某种方式改变这一点:

sidekiq_options queue: Rails.env.to_sym

到这样的事情:

sidekiq_options queue: [something here].include? "retry_queue" ? :retry_queue : Rails.env.to_sym

任何想法或建议将不胜感激。

【问题讨论】:

    标签: ruby-on-rails sidekiq


    【解决方案1】:

    所有重试失败的作业然后进入死集和 Web UI 中的死选项卡。请参阅错误处理 wiki 页面。

    【讨论】:

    • 谢谢迈克!现在全部启动并运行。很酷。
    猜你喜欢
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 2013-07-10
    • 2021-02-16
    • 1970-01-01
    • 2012-10-05
    相关资源
    最近更新 更多