我可以 运行 一个 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'。
我有一个 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'。