我正在使用queue_classic作为后台工作,
我需要监控生产中的后台工作,即启动,停止等
我找到了similar question,但它没有帮助我
我也发现了神码:
但我怎么会停下来,重新启动工人呢?
number_queues.times do |queue_num|
God.watch do |w|
w.name = "QC-#{queue_num}"
w.group = "QC"
w.interval = 5.minutes
w.start = "bundle exec rake queue:work" # This is your rake task to start QC listening
w.gid = 'nginx'
w.uid = 'nginx'
w.dir = rails_root
w.keepalive
w.env = {"RAILS_ENV" => rails_env}
w.log = "#{log_dir}/qc.stdout.log" # Or.... "#{log_dir}//qc-#{queue_num}.stdout.log"
# determine the state on startup
w.transition(:init, { true => :up, false => :start }) do |on|
on.condition(:process_running) do |c|
c.running = true
end
end
end
end
更新
此代码似乎不起作用
namespace :queue_classic do
desc "Start QC worker"
task :start, roles: :web do
run "cd #{release_path} && RAILS_ENV=production bundle exec rake qc:work"
end
after "deploy:restart", "queue_classic:restart"
end
答案 0 :(得分:0)
答案 1 :(得分:0)
根据您需要的监控类型,您还可以查看Toro,它提供了大量的监控,包括Web界面和作业存储大量数据的事实。使用ActiveRecord查询轻松查询。 Toro还支持中间件,这可能对您的需求有用。