diff --git a/code/main.rb b/code/main.rb index a02dc16..b2c9e2f 100644 --- a/code/main.rb +++ b/code/main.rb @@ -119,6 +119,10 @@ def msgs_labels %w[prep que run err done relayed] end + def builtin_queue? q + %w[relay cleaner webhook rq_router].include? q + end + def flash(type, msg) h = session[:flash] || {} h[type] = msg @@ -192,7 +196,32 @@ def flash(type, msg) get '/q.json' do content_type 'application/json' - queuemgr.queues.to_json + builtin_queues, custom_queues = queuemgr.queues.sort.partition { |q| builtin_queue? q } + + (custom_queues.map do |name| + qc = get_queueclient(name) + { + 'name' => name, + 'status' => qc.status, + 'ping' => qc.ping, + 'pid' => qc.read_pid, + 'uptime' => qc.uptime, + 'counts' => Hash[ msgs_labels.zip(qc.num_messages.values_at(*msgs_labels)) ], + # 'schedule' => qc.config[1]['schedule']... + } + end + + builtin_queues.map do |name| + qc = get_queueclient(name) + { + 'name' => name, + 'status' => qc.status, + 'ping' => qc.ping, + 'pid' => qc.read_pid, + 'uptime' => qc.uptime, + 'counts' => Hash[ msgs_labels.zip(qc.num_messages.values_at(*msgs_labels)) ], + # 'schedule' => qc.config[1]['schedule']... + } + end).to_json end get '/search' do @@ -232,6 +261,7 @@ def flash(type, msg) } end end + content_type 'application/json' data.to_json end diff --git a/code/views/main.erb b/code/views/main.erb index b6a7995..2f190ec 100644 --- a/code/views/main.erb +++ b/code/views/main.erb @@ -8,15 +8,7 @@

Queue List

<% if queuemgr.running? - queues = queuemgr.queues.sort - builtin_queues, custom_queues = [], [] - queues.each do |q| - if %w{relay cleaner webhook rq_router}.include? q - builtin_queues << q - else - custom_queues << q - end - end + builtin_queues, custom_queues = queuemgr.queues.sort.partition { |q| builtin_queue? q } -%>