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

Can I run a rake task to simulate sidekiq running?

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

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

这不是我所知道的生产解决方案,但我只是想确保服务器上的其他所有东西都正常工作,暂时我 运行在服务器上执行 rake 任务很好,因为在这一点上更多的是用于质量检查。

引用自 SortedEntry and 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 任务中。

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