Module Delayed::Backend::Base
In: lib/delayed/backend/base.rb

Methods

Classes and Modules

Module Delayed::Backend::Base::ClassMethods

Constants

ParseObjectFromYaml = /\!ruby\/\w+\:([^\s]+)/

Public Class methods

[Source]

   # File lib/delayed/backend/base.rb, line 4
4:       def self.included(base)
5:         base.extend ClassMethods
6:       end

Public Instance methods

failed()

Alias for failed?

[Source]

    # File lib/delayed/backend/base.rb, line 58
58:       def failed?
59:         failed_at
60:       end

[Source]

     # File lib/delayed/backend/base.rb, line 102
102:       def hook(name, *args)
103:         if payload_object.respond_to?(name)
104:           method = payload_object.method(name)
105:           method.arity == 0 ? method.call : method.call(self, *args)
106:         end
107:       rescue DeserializationError
108:         # do nothing
109:       end

[Source]

    # File lib/delayed/backend/base.rb, line 85
85:       def invoke_job
86:         hook :before
87:         payload_object.perform
88:         hook :success
89:       rescue Exception => e
90:         hook :error, e
91:         raise e
92:       ensure
93:         hook :after
94:       end

[Source]

     # File lib/delayed/backend/base.rb, line 117
117:       def max_attempts
118:         payload_object.max_attempts if payload_object.respond_to?(:max_attempts)
119:       end

[Source]

    # File lib/delayed/backend/base.rb, line 65
65:       def name
66:         @name ||= payload_object.respond_to?(:display_name) ?
67:                     payload_object.display_name :
68:                     payload_object.class.name
69:       rescue DeserializationError
70:         ParseObjectFromYaml.match(handler)[1]
71:       end

[Source]

    # File lib/delayed/backend/base.rb, line 78
78:       def payload_object
79:         @payload_object ||= YAML.load(self.handler)
80:       rescue TypeError, LoadError, NameError, ArgumentError => e
81:         raise DeserializationError,
82:           "Job failed to load: #{e.message}. Handler: #{handler.inspect}"
83:       end

[Source]

    # File lib/delayed/backend/base.rb, line 73
73:       def payload_object=(object)
74:         @payload_object = object
75:         self.handler = object.to_yaml
76:       end

[Source]

     # File lib/delayed/backend/base.rb, line 111
111:       def reschedule_at
112:         payload_object.respond_to?(:reschedule_at) ?
113:           payload_object.reschedule_at(self.class.db_time_now, attempts) :
114:           self.class.db_time_now + (attempts ** 4) + 5
115:       end

Unlock this job (note: not saved to DB)

[Source]

     # File lib/delayed/backend/base.rb, line 97
 97:       def unlock
 98:         self.locked_at    = nil
 99:         self.locked_by    = nil
100:       end

Protected Instance methods

[Source]

     # File lib/delayed/backend/base.rb, line 123
123:       def set_default_run_at
124:         self.run_at ||= self.class.db_time_now
125:       end

[Validate]