使用ActiveJob / Sidekiq的Rails不会启动作业

时间:2017-08-02 02:19:35

标签: ruby-on-rails ruby sidekiq

将ActiveJob与sidekiq一起使用时,

# application.rb
config.active_job.queue_adapter = :sidekiq

我使用redis做了一份工作。

class SubmissionJob < ActiveJob::Base
  queue_as :default

  def perform(*args)

在通过日志检查后,将作业调用为

SubmissionJob_perform_later args

但在执行rails s

时发出消息后,这不起作用
Enqueued SubmissionJob (Job ID: 63320b9d-de2a-4791-99f6-e58f2adf73d7) to Sidekiq(development_default) with arguments: ["12345", "12346"]

最后,我用redis渲染结果调用job_id,结果应该返回参数,但它只返回空数组,似乎SubmissionJob从未运行过。

但是,当我使用perform_now调用时,SubmissionJob.perform_now args函数正常工作,因此看起来SubmissionJob本身的方法不是问题。

我应该从哪里开始发现问题以及解决此问题的可能解决方案。

1 个答案:

答案 0 :(得分:0)

解决了问题。

这是由于Work没有成功从建议的队列中取出作业。在运行sidekiq时,我提供了-q选项。

例如bundle exec sidekiq -e develop -q develop_submit_job_queue