Class: Resque::Failure::Multiple
- Defined in:
- lib/resque/failure/multiple.rb
Overview
A Failure backend that uses multiple backends delegates all queries to the first backend
Defined Under Namespace
Classes: BackendError
Class Attribute Summary collapse
-
.classes ⇒ Object
Returns the value of attribute classes.
Attributes inherited from Base
#exception, #failure_id, #payload, #queue, #worker
Class Method Summary collapse
-
.all(*args) ⇒ Object
Returns a paginated array of failure objects.
-
.clear(*args) ⇒ Object
Clear all failure objects.
- .configure {|_self| ... } ⇒ Object
-
.count(*args) ⇒ Object
The number of failures.
-
.each(*args, &block) ⇒ Object
Iterate across failed objects.
-
.queues ⇒ Object
Returns an array of all available failure queues.
- .remove(index, queue = nil) ⇒ Object
- .requeue(*args) ⇒ Object
- .requeue_all ⇒ Object
- .requeue_queue(queue) ⇒ Object
-
.url ⇒ Object
A URL where someone can go to view failures.
Instance Method Summary collapse
-
#initialize(*args) ⇒ Multiple
constructor
A new instance of Multiple.
- #save ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(*args) ⇒ Multiple
Returns a new instance of Multiple.
27 28 29 30 |
# File 'lib/resque/failure/multiple.rb', line 27 def initialize(*args) super @backends = self.class.classes.map {|klass| klass.new(*args)} end |
Class Attribute Details
.classes ⇒ Object
Returns the value of attribute classes.
19 20 21 |
# File 'lib/resque/failure/multiple.rb', line 19 def classes @classes end |
Class Method Details
.all(*args) ⇒ Object
Returns a paginated array of failure objects.
58 59 60 |
# File 'lib/resque/failure/multiple.rb', line 58 def self.all(*args) classes.first.all(*args) end |
.clear(*args) ⇒ Object
Clear all failure objects
73 74 75 |
# File 'lib/resque/failure/multiple.rb', line 73 def self.clear(*args) classes.first.clear(*args) end |
.configure {|_self| ... } ⇒ Object
22 23 24 25 |
# File 'lib/resque/failure/multiple.rb', line 22 def self.configure yield self Resque::Failure.backend = self end |
.count(*args) ⇒ Object
The number of failures.
48 49 50 |
# File 'lib/resque/failure/multiple.rb', line 48 def self.count(*args) classes.first.count(*args) end |
.each(*args, &block) ⇒ Object
Iterate across failed objects
63 64 65 |
# File 'lib/resque/failure/multiple.rb', line 63 def self.each(*args, &block) classes.first.each(*args, &block) end |
.queues ⇒ Object
Returns an array of all available failure queues
53 54 55 |
# File 'lib/resque/failure/multiple.rb', line 53 def self.queues classes.first.queues end |
.remove(index, queue = nil) ⇒ Object
89 90 91 |
# File 'lib/resque/failure/multiple.rb', line 89 def self.remove(index, queue = nil) classes.each { |klass| klass.remove(index, queue) } end |
.requeue(*args) ⇒ Object
77 78 79 |
# File 'lib/resque/failure/multiple.rb', line 77 def self.requeue(*args) classes.first.requeue(*args) end |
.requeue_all ⇒ Object
81 82 83 |
# File 'lib/resque/failure/multiple.rb', line 81 def self.requeue_all classes.first.requeue_all end |
.requeue_queue(queue) ⇒ Object
85 86 87 |
# File 'lib/resque/failure/multiple.rb', line 85 def self.requeue_queue(queue) classes.first.requeue_queue(queue) end |
.url ⇒ Object
A URL where someone can go to view failures.
68 69 70 |
# File 'lib/resque/failure/multiple.rb', line 68 def self.url classes.first.url end |
Instance Method Details
#save ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/resque/failure/multiple.rb', line 32 def save errors = {} @backends.each do |backend| backend.failure_id = failure_id if backend.respond_to?(:failure_id=) backend.save rescue errors[backend.class] = $! end unless errors.empty? raise BackendError.new(errors) end end |