Skip to content

Commit ae19109

Browse files
committed
Job.destroy and Resque.dequeue return the # of destroyed jobs.
1 parent 207df83 commit ae19109

File tree

4 files changed

+14
-3
lines changed

4 files changed

+14
-3
lines changed

HISTORY.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 1.5.1 (2010-??-??)
2+
3+
* `Job.destroy` and `Resque.dequeue` return the # of destroyed jobs.
4+
15
## 1.5.0 (2010-02-17)
26

37
* Version now included in procline, e.g. `resque-1.5.0: Message`

lib/resque.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ def enqueue(klass, *args)
156156
# the provided class. See `Resque::Job.destroy` for more
157157
# information.
158158
#
159+
# Returns the number of jobs destroyed.
160+
#
159161
# Example:
160162
#
161163
# # Removes all jobs of class `UpdateNetworkGraph`

lib/resque/job.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ def self.create(queue, klass, *args)
5050
# Removes a job from a queue. Expects a string queue name, a
5151
# string class name, and, optionally, args.
5252
#
53+
# Returns the number of jobs destroyed.
54+
#
5355
# If no args are provided, it will remove all jobs of the class
5456
# provided.
5557
#
@@ -72,6 +74,7 @@ def self.create(queue, klass, *args)
7274
def self.destroy(queue, klass, *args)
7375
klass = klass.to_s
7476
queue = "queue:#{queue}"
77+
destroyed = 0
7578

7679
redis.lrange(queue, 0, -1).each do |string|
7780
json = decode(string)
@@ -80,9 +83,11 @@ def self.destroy(queue, klass, *args)
8083
match &= json['args'] == args unless args.empty?
8184

8285
if match
83-
redis.lrem(queue, 0, string)
86+
destroyed += redis.lrem(queue, 0, string).to_i
8487
end
8588
end
89+
90+
destroyed
8691
end
8792

8893
# Given a string queue name, returns an instance of Resque::Job

test/resque_test.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@
7979
assert Resque::Job.create(:jobs, 'BadJob', 20, '/tmp')
8080

8181
assert_equal 5, Resque.size(:jobs)
82-
Resque::Job.destroy(:jobs, 'SomeJob')
82+
assert_equal 2, Resque::Job.destroy(:jobs, 'SomeJob')
8383
assert_equal 3, Resque.size(:jobs)
84-
Resque::Job.destroy(:jobs, 'BadJob', 30, '/tmp')
84+
assert_equal 1, Resque::Job.destroy(:jobs, 'BadJob', 30, '/tmp')
8585
assert_equal 2, Resque.size(:jobs)
8686
end
8787

0 commit comments

Comments
 (0)