将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本身的方法不是问题。
我应该从哪里开始发现问题以及解决此问题的可能解决方案。
答案 0 :(得分:0)
解决了问题。
这是由于Work没有成功从建议的队列中取出作业。在运行sidekiq时,我提供了-q
选项。
例如bundle exec sidekiq -e develop -q develop_submit_job_queue