Sidekiq的perform_in实际上并未执行,尽管显示为“忙”

时间:2018-09-23 20:41:55

标签: ruby-on-rails sidekiq

我只是创建了一个在后台重新启动apache的工作程序,因为在rails应用程序中执行此操作只会冻结该应用程序并引发“内部服务器错误”

我正在做一些极端简单的事情。

这是我的工人:

# app/workers/reload_apache_worker.rb
class ReloadApacheWorker
  include Sidekiq::Worker

  def perform
    `sudo /etc/init.d/apache2 graceful`
  end
end

我只是用ReloadApacheWorker.perform_in(5.seconds)

来称呼它

什么都没发生。我在sidekiq Web界面中看到它“忙”。 enter image description here

我在做什么错?我与.perform_async一起执行的另外2个工作人员都工作正常,因此我不确定这是怎么回事。

1 个答案:

答案 0 :(得分:0)

如果在请求期间(内部)重新启动服务器,则会收到错误消息,因为它不会响应,因此会收到错误消息。