From 7fce10c92cd8097df1dee2c3cafc635b20807d16 Mon Sep 17 00:00:00 2001 From: Brandon Keepers Date: Sat, 2 Jan 2010 17:59:54 -0500 Subject: [PATCH] Implement Job.clear_locks! for mongo --- lib/delayed/backend/mongo.rb | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/delayed/backend/mongo.rb b/lib/delayed/backend/mongo.rb index dca7e9638..3a9eb9ebd 100644 --- a/lib/delayed/backend/mongo.rb +++ b/lib/delayed/backend/mongo.rb @@ -41,6 +41,11 @@ def self.find_available(worker_name, limit = 5, max_run_time = Worker.max_run_ti all(conditions) end + # When a worker is exiting, make sure we don't have any locked jobs. + def self.clear_locks!(worker_name) + collection.update({:locked_by => worker_name}, {"$set" => {:locked_at => nil, :locked_by => nil}}, :multi => true) + end + # Lock this job for this worker. # Returns true if we have the lock, false otherwise. def lock_exclusively!(max_run_time, worker = worker_name)