Class: Resque::Failure::Multiple

Inherits:
Base
  • Object
show all
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

Attributes inherited from Base

#exception, #failure_id, #payload, #queue, #worker

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#log

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

Yields:

  • (_self)

Yield Parameters:



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