Module: Resque::Failure

Defined in:
lib/resque/failure.rb,
lib/resque/failure/base.rb,
lib/resque/failure/mongo.rb,
lib/resque/failure/redis.rb,
lib/resque/failure/hoptoad.rb,
lib/resque/failure/multiple.rb

Overview

The Failure module provides an interface for working with different failure backends.

You can use it to query the failure backend without knowing which specific backend is being used. For instance, the Resque web app uses it to display stats and other information.

Defined Under Namespace

Classes: Base, Hoptoad, Mongo, Multiple, Redis

Class Method Summary collapse

Class Method Details

.all(start = 0, count = 1) ⇒ Object

Returns an array of all the failures, paginated.

‘start` is the int of the first item in the page, `count` is the number of items to return.



53
54
55
# File 'lib/resque/failure.rb', line 53

def self.all(start = 0, count = 1)
  backend.all(start, count)
end

.backendObject

Returns the current backend class. If none has been set, falls back to ‘Resque::Failure::Redis`



33
34
35
36
37
# File 'lib/resque/failure.rb', line 33

def self.backend
  return @backend if @backend
  require 'resque/failure/mongo'
  @backend = Failure::Mongo
end

.backend=(backend) ⇒ Object

Sets the current backend. Expects a class descendent of ‘Resque::Failure::Base`.

Example use:

require 'resque/failure/hoptoad'
Resque::Failure.backend = Resque::Failure::Hoptoad


27
28
29
# File 'lib/resque/failure.rb', line 27

def self.backend=(backend)
  @backend = backend
end

.clearObject

Clear all failure jobs



70
71
72
# File 'lib/resque/failure.rb', line 70

def self.clear
  backend.clear
end

.countObject

Returns the int count of how many failures we have seen.



40
41
42
# File 'lib/resque/failure.rb', line 40

def self.count
  backend.count
end

.create(options = {}) ⇒ Object

Creates a new failure, which is delegated to the appropriate backend.

Expects a hash with the following keys:

:exception - The Exception object
:worker    - The Worker object who is reporting the failure
:queue     - The string name of the queue from which the job was pulled
:payload   - The job's payload


16
17
18
# File 'lib/resque/failure.rb', line 16

def self.create(options = {})
  backend.new(*options.values_at(:exception, :worker, :queue, :payload)).save
end

.remove(index) ⇒ Object



78
79
80
# File 'lib/resque/failure.rb', line 78

def self.remove(index)
  backend.remove(index)
end

.requeue(index) ⇒ Object



74
75
76
# File 'lib/resque/failure.rb', line 74

def self.requeue(index)
  backend.requeue(index)
end

.search_countObject

Returns the int count of the number of results for the last search executed



45
46
47
# File 'lib/resque/failure.rb', line 45

def self.search_count
  backend.search_count
end

.search_results(query, start = 0, count = 1) ⇒ Object

Will hold the last count - start results of a search through all the failed jobs, using the query string ‘query’



60
61
62
# File 'lib/resque/failure.rb', line 60

def self.search_results(query, start = 0, count = 1)
  backend.search_results(query, start, count)
end

.urlObject

The string url of the backend’s web interface, if any.



65
66
67
# File 'lib/resque/failure.rb', line 65

def self.url
  backend.url
end