我可以运行rake任务来模拟sidekiq运行吗?

时间:2017-04-28 22:08:33

标签: ruby-on-rails sidekiq

我有一个rails应用程序,我想使用sidekiq。

在我弄清楚如何在服务器等上设置sidekiq之前,我是否可以创建一个rake任务来运行sidekiq worker来处理任何待处理的工作?

这不是我所知道的生产解决方案,但我只是想确保服务器上的所有其他工作正在运行,暂时我在服务器上运行rake任务很好,因为它更适用于QA&# 39;在这一点上。

2 个答案:

答案 0 :(得分:2)

登录服务器,cd到应用程序的目录并手动运行'bundle exec sidekiq'。

答案 1 :(得分:0)

参考 SortedEntryScheduledSet,我设法提出以下内容:

# ScheduledSet returns "pending" jobs
scheduled_jobs = Sidekiq::ScheduledSet.new

# puts scheduled_jobs.class
# => Sidekiq::ScheduledSet

scheduled_jobs.each do |scheduled_job|
  # puts scheduled_job.class
  # => Sidekiq::SortedEntry

  job_class = scheduled_job.klass.constantize
  job_args = scheduled_job.args

  # you can also filter out only jobs in certain queue, i.e.:
  # if scheduled_job.queue == 'mailers' ......

  # run the job inline
  job_class.new.perform(*job_args)
end

然后将其包装成rake任务。