我有一个rails应用程序,我想使用sidekiq。
在我弄清楚如何在服务器等上设置sidekiq之前,我是否可以创建一个rake任务来运行sidekiq worker来处理任何待处理的工作?
这不是我所知道的生产解决方案,但我只是想确保服务器上的所有其他工作正在运行,暂时我在服务器上运行rake任务很好,因为它更适用于QA&# 39;在这一点上。
答案 0 :(得分:2)
登录服务器,cd到应用程序的目录并手动运行'bundle exec sidekiq'。
答案 1 :(得分:0)
参考 SortedEntry和ScheduledSet,我设法提出以下内容:
# 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任务。