From 4d0abb0faeb9ccde995ffe6d32858e6b08903a52 Mon Sep 17 00:00:00 2001 From: Matt Conway Date: Sun, 30 Jan 2011 11:25:52 -0500 Subject: [PATCH] fix race condition in resque web --- lib/resque/server/views/working.erb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/resque/server/views/working.erb b/lib/resque/server/views/working.erb index db2b4ae0d..6165cfdd4 100644 --- a/lib/resque/server/views/working.erb +++ b/lib/resque/server/views/working.erb @@ -27,8 +27,14 @@ <% else %> - <% workers = resque.working.reject { |w| w.idle? } %> -

<%= workers.size %> of <%= resque.workers.size %> Workers Working

+ <% + workers = resque.working + jobs = workers.collect {|w| w.job } + worker_jobs = workers.zip(jobs) + worker_jobs = worker_jobs.reject { |w, j| w.idle? } + %> + +

<%= worker_jobs.size %> of <%= resque.workers.size %> Workers Working

The list below contains all workers which are currently running a job.

@@ -37,15 +43,13 @@ - <% if workers.empty? %> + <% if worker_jobs.empty? %> <% end %> - <% for worker in workers.sort_by { |w| w.job['run_at'] ? w.job['run_at'] : '' } %> - <% job = worker.job %> - + <% worker_jobs.sort_by {|w, j| j['run_at'] ? j['run_at'] : '' }.each do |worker, job| %> <% host, pid, queues = worker.to_s.split(':') %>
Queue Processing
Nothing is happening right now...
<%= state %>