Module | Delayed::Backend::Base |
In: |
lib/delayed/backend/base.rb
|
ParseObjectFromYaml | = | /\!ruby\/\w+\:([^\s]+)/ |
# File lib/delayed/backend/base.rb, line 4 4: def self.included(base) 5: base.extend ClassMethods 6: end
# 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
# 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
# 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
# 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
# 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
# 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
# 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)
# File lib/delayed/backend/base.rb, line 97 97: def unlock 98: self.locked_at = nil 99: self.locked_by = nil 100: end