class Delayed::Backend::SimpleQueueService::Job
Attributes
handler[RW]
Public Class Methods
clear_locks!(*args)
click to toggle source
No need to check locks
# File lib/delayed/backend/simple_queue_service.rb, line 100 def self.clear_locks!(*args) true end
db_time_now()
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 104 def self.db_time_now Time.now.utc end
find_available(worker_name, limit = 5, max_run_time = nil)
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 108 def self.find_available worker_name, limit = 5, max_run_time = nil messages = Delayed::Worker.sqs.receive_message :limit => limit, :wait_time_seconds => 20 objects = [] if messages messages = [messages] unless messages.is_a? Array messages.each do |m| objects << Delayed::Backend::SimpleQueueService::Job.new(m) end end # print '.' objects end
new(data = {})
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 8 def initialize data = {} if data.is_a? AWS::SQS::ReceivedMessage @sqs_message = data data = MultiJson.load(@sqs_message.body) end # print data.to_yaml + "\n\n" data.symbolize_keys! payload_obj = data.delete(:payload_object) || data.delete(:handler) @attributes = data self.payload_object = payload_obj end
Public Instance Methods
attempts()
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 81 def attempts @attributes[:attempts] || 0 end
attempts=(num)
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 84 def attempts= num @attributes[:attempts] = num end
destroy()
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 92 def destroy @sqs_message.delete if @sqs_message end
id()
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 25 def id @sqs_message.id end
last_error=(error)
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 77 def last_error= error @attributes[:last_error] = error end
lock_exclusively!(*args)
click to toggle source
No need to check locks
# File lib/delayed/backend/simple_queue_service.rb, line 63 def lock_exclusively!(*args) true end
payload_object=(object)
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 29 def payload_object=(object) if object.is_a? String @payload_object = YAML.load(object) self.handler = object else @payload_object = object self.handler = object.to_yaml end end
reload(*args)
click to toggle source
Calls superclass method
# File lib/delayed/backend/simple_queue_service.rb, line 72 def reload(*args) # reset super end
run_at=(ts)
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 88 def run_at= ts @attributes[:run_at] = ts end
save()
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 39 def save payload = MultiJson.dump(@attributes.merge(:payload_object => YAML.dump(payload_object))) #puts "[SAVE] #{payload.inspect}" @sqs_message.delete if @sqs_message Delayed::Worker.sqs.send_message payload, :delay_seconds => [900,(attempts**3)].min true end
save!()
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 52 def save! save end
unlock(*args)
click to toggle source
No need to check locks
# File lib/delayed/backend/simple_queue_service.rb, line 68 def unlock(*args) true end
update_attributes(attributes)
click to toggle source
# File lib/delayed/backend/simple_queue_service.rb, line 56 def update_attributes(attributes) attributes.symbolize_keys! @attributes.merge attributes save end