From 34e5b2252c500fa2680426d9909421ee9ccffde5 Mon Sep 17 00:00:00 2001 From: Nathan Acuff Date: Wed, 3 Nov 2010 11:59:31 -0400 Subject: [PATCH] added timestamp to all jobs --- lib/resque.rb | 1 + lib/resque/failure/mongo.rb | 1 - lib/resque/server.rb | 4 ++++ lib/resque/server/views/queues.erb | 6 +++++- lib/resque/version.rb | 2 +- resque-igo-1.1.4.gem | Bin 0 -> 72192 bytes test/resque_test.rb | 14 +++++++------- test/worker_test.rb | 6 ++++-- 8 files changed, 22 insertions(+), 12 deletions(-) create mode 100644 resque-igo-1.1.4.gem diff --git a/lib/resque.rb b/lib/resque.rb index 1bcb6fbcb..527748160 100644 --- a/lib/resque.rb +++ b/lib/resque.rb @@ -165,6 +165,7 @@ def enable_delay(queue) # Pushes a job onto a queue. Queue name should be a string and the # item should be any JSON-able Ruby object. def push(queue, item) + item[:resque_enqueue_timestamp] = Time.now if item[:unique] mongo[queue].update({'_id' => item[:_id]}, item, { :upsert => true}) else diff --git a/lib/resque/failure/mongo.rb b/lib/resque/failure/mongo.rb index ea32b8620..967a951a0 100644 --- a/lib/resque/failure/mongo.rb +++ b/lib/resque/failure/mongo.rb @@ -21,7 +21,6 @@ def self.count end def self.all(start = 0, count = 1) - all_failures = Resque.mongo_failures.find().skip(start.to_i).limit(count.to_i).to_a all_failures.size == 1 ? all_failures.first : all_failures end diff --git a/lib/resque/server.rb b/lib/resque/server.rb index 9718ee0a9..f8023b1e6 100644 --- a/lib/resque/server.rb +++ b/lib/resque/server.rb @@ -110,6 +110,10 @@ def processes_in(delay_until) return "Immediately (#{time})" if now > delay_until return time end + + def enqueued_at(resque_enqueue_timestamp) + + end def distance_of_time_in_words(from_time, to_time = 0, include_seconds = true, options = {}) from_time = from_time.to_time if from_time.respond_to?(:to_time) diff --git a/lib/resque/server/views/queues.erb b/lib/resque/server/views/queues.erb index 3140ebb1b..92cfeba10 100644 --- a/lib/resque/server/views/queues.erb +++ b/lib/resque/server/views/queues.erb @@ -10,11 +10,13 @@ Class Args1 + Enqueued At <% for job in (jobs = resque.peek(queue.to_sym, start, 20)) %> <%= job['class'] %> <%=h job['args'].inspect %> + <% end %> <% else %> @@ -22,14 +24,16 @@ Class Args + Enqueued At Processes In <% for job in (jobs = resque.peek(queue.to_sym, start, 20, :all_sorted)) %> <%= job['class'] %> <%=h job['args'].inspect %> + <%=h enqueued_at(job['resque_enqueue_timestamp']) %> <%=h processes_in(job['delay_until']) %> - + <% end %> <% end %> <% if jobs.empty? %> diff --git a/lib/resque/version.rb b/lib/resque/version.rb index 9b3cf7089..c59d4a84d 100644 --- a/lib/resque/version.rb +++ b/lib/resque/version.rb @@ -1,3 +1,3 @@ module Resque - Version = VERSION = '1.1.3' + Version = VERSION = '1.1.4' end diff --git a/resque-igo-1.1.4.gem b/resque-igo-1.1.4.gem new file mode 100644 index 0000000000000000000000000000000000000000..7894cc9041db1c768953d68068f0c36bf6a48996 GIT binary patch literal 72192 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

J!kYl|U^w^(* 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 S+CBbB>mLOELE!&00{;b4Dc6Dk literal 0 HcmV?d00001 diff --git a/test/resque_test.rb b/test/resque_test.rb index 323d699db..8a41b6ec5 100644 --- a/test/resque_test.rb +++ b/test/resque_test.rb @@ -141,27 +141,27 @@ def pop_no_id(queue) test "can pull items off a queue" do - assert_equal({ 'name' => 'chris' }, pop_no_id(:people)) - assert_equal({ 'name' => 'bob' }, pop_no_id(:people)) - assert_equal({ 'name' => 'mark' }, pop_no_id(:people)) + assert_equal('chris', pop_no_id(:people)['name']) + assert_equal('bob', pop_no_id(:people)['name']) + assert_equal('mark', pop_no_id(:people)['name']) assert_equal nil, Resque.pop(:people) end test "knows how big a queue is" do assert_equal 3, Resque.size(:people) - assert_equal({ 'name' => 'chris' }, pop_no_id(:people)) + assert_equal('chris', pop_no_id(:people)['name']) assert_equal 2, Resque.size(:people) - assert_equal({ 'name' => 'bob' }, pop_no_id(:people)) - assert_equal({ 'name' => 'mark' }, pop_no_id(:people)) + assert_equal('bob', pop_no_id(:people)['name']) + assert_equal('mark', pop_no_id(:people)['name']) assert_equal 0, Resque.size(:people) end test "can peek at a queue" do peek = Resque.peek(:people) peek.delete "_id" - assert_equal({ 'name' => 'chris' }, peek) + assert_equal('chris', peek['name']) assert_equal 3, Resque.size(:people) end diff --git a/test/worker_test.rb b/test/worker_test.rb index d2e7c11d1..20020ef05 100644 --- a/test/worker_test.rb +++ b/test/worker_test.rb @@ -19,8 +19,9 @@ test "failed jobs report exception and message" do Resque::Job.create(:jobs, BadJobWithSyntaxError) @worker.work(0) - assert_equal('SyntaxError', Resque::Failure.all.first['exception']) - assert_equal('Extra Bad job!', Resque::Failure.all.first['error']) + failure = Resque::Failure.all.is_a?(Array) ? Resque::Failure.all.first : Resque::Failure.all + assert_equal('SyntaxError', failure['exception']) + assert_equal('Extra Bad job!', failure['error']) end test "fails uncompleted jobs on exit" do @@ -142,6 +143,7 @@ @worker.work(0) do task = @worker.job task['payload'].delete "_id" + task['payload'].delete "resque_enqueue_timestamp" assert_equal({"args"=>[20, "/tmp"], "class"=>"SomeJob"}, task['payload']) assert task['run_at'] assert_equal 'jobs', task['queue'].to_s