Class: Resque::Failure::MultipleFailure
- Inherits:
-
Base
- Object
- Base
- Resque::Failure::MultipleFailure
- Defined in:
- lib/resque/failure/multiple_failure.rb
Class Method Summary collapse
- .all(queue, start = 0, count = 1) ⇒ Object
- .clear(queue = nil) ⇒ Object
- .count(queue = nil) ⇒ Object
- .queues ⇒ Object
- .requeue(queue, index) ⇒ Object
- .url ⇒ Object
Instance Method Summary collapse
Class Method Details
.all(queue, start = 0, count = 1) ⇒ Object
39 40 41 42 |
# File 'lib/resque/failure/multiple_failure.rb', line 39 def self.all(queue, start = 0, count = 1) queue = queue =~ /^failed_/ ? queue : "failed_#{queue}" Resque.list_range(queue.to_sym, start, count) end |
.clear(queue = nil) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/resque/failure/multiple_failure.rb', line 44 def self.clear(queue=nil) if queue queue = queue =~ /^failed_/ ? queue : "failed_#{queue}" Resque.redis.del(queue.to_sym) else Resque.queues.each {|queue| Resque.redis.del("failed_#{queue}") } end end |
.count(queue = nil) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/resque/failure/multiple_failure.rb', line 22 def self.count(queue=nil) if queue queue = queue =~ /^failed_/ ? queue : "failed_#{queue}" Resque.redis.llen(queue.to_sym).to_i else count = 0 Resque.queues.each do |queue| count += Resque.redis.llen("failed_#{queue}".to_sym).to_i end count end end |
.queues ⇒ Object
18 19 20 |
# File 'lib/resque/failure/multiple_failure.rb', line 18 def self.queues Resque.queues.map {|queue| "failed_#{queue}"} end |
.requeue(queue, index) ⇒ Object
53 54 55 56 57 58 59 |
# File 'lib/resque/failure/multiple_failure.rb', line 53 def self.requeue(queue, index) queue = queue =~ /^failed_/ ? queue : "failed_#{queue}" item = all(queue, index) item['retried_at'] = Time.now.strftime("%Y/%m/%d %H:%M:%S") Resque.redis.lset(queue.to_sym, index, Resque.encode(item)) Job.create(item['queue'], item['payload']['class'], *item['payload']['args']) end |
.url ⇒ Object
35 36 37 |
# File 'lib/resque/failure/multiple_failure.rb', line 35 def self.url "/failed/list" end |
Instance Method Details
#save ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/resque/failure/multiple_failure.rb', line 4 def save data = { :failed_at => Time.now.strftime("%Y/%m/%d %H:%M:%S"), :payload => payload, :exception => exception.class.to_s, :error => exception.to_s, :backtrace => Array(exception.backtrace), :worker => worker.to_s, :queue => queue } data = Resque.encode(data) Resque.redis.rpush("failed_#{queue}".to_sym, data) end |