class Rjob::Job
Constants
- DeserializationError
Attributes
context[R]
id[RW]
payload[R]
retry_num[RW]
Public Class Methods
deserialize(context, job_str)
click to toggle source
# File lib/rjob/job.rb, line 36 def self.deserialize(context, job_str) first = job_str.index('!') second = job_str.index('!', first + 1) if first == nil || second == nil raise DeserializationError.new("Malformed job string: '#{job_str}'") end begin new(context).tap do |job| job.id = job_str[0...first] job.retry_num = job_str[(first + 1)...second].to_i job.payload = job_str[(second + 1)..-1] end rescue MessagePack::MalformedFormatError => e raise DeserializationError.new("Malformed job msgpack payload: #{e.message}") end end
new(context)
click to toggle source
# File lib/rjob/job.rb, line 11 def initialize(context) @context = context end
Public Instance Methods
payload=(str)
click to toggle source
# File lib/rjob/job.rb, line 27 def payload=(str) @payload = str @deserialized_payload = MessagePack.unpack(str) end
serialize()
click to toggle source
# File lib/rjob/job.rb, line 32 def serialize "#{@id}!#{@retry_num}!#{@payload}".b end
worker_args()
click to toggle source
# File lib/rjob/job.rb, line 23 def worker_args @deserialized_payload[1] end
worker_class()
click to toggle source
# File lib/rjob/job.rb, line 19 def worker_class @context.fetch_worker_class(class_name: worker_class_name) end
worker_class_name()
click to toggle source
# File lib/rjob/job.rb, line 15 def worker_class_name @deserialized_payload[0] end