class Rapid::Task
Public Class Methods
new(klass, content, attr)
click to toggle source
# File lib/rapid/task.rb, line 7 def initialize klass, content, attr @klass = klass @content = content @message_ttl = attr[:message_ttl] @routing_key = attr[:routing_key] @max_attempts = attr[:max_attempts] || 1 @attempt_counter = 0 end
Public Instance Methods
args=(args)
click to toggle source
# File lib/rapid/task.rb, line 16 def args= args @args = args end
enqueue()
click to toggle source
# File lib/rapid/task.rb, line 45 def enqueue q = Rapid::get_channel.queue(underscore('rapid_'+@klass.to_s), durable: true) q.publish(to_json, persisted: true)# TODO: message_ttl, routing_key end
metaclass()
click to toggle source
# File lib/rapid/task.rb, line 3 def metaclass class << self; self; end end
method_name=(method_name)
click to toggle source
# File lib/rapid/task.rb, line 20 def method_name= method_name @method_name = method_name end
to_json()
click to toggle source
# File lib/rapid/task.rb, line 24 def to_json { klass: @klass, content: @content, message_ttl: @message_ttl, routing_key: @routing_key, max_attempts: @max_attempts, attempt_counter: @attempt_counter, method_name: @method_name, args: @args, }.to_json end
underscore(camel_cased_word)
click to toggle source
# File lib/rapid/task.rb, line 37 def underscore(camel_cased_word) camel_cased_word.to_s.gsub(/::/, '/'). gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(/([a-z\d])([A-Z])/,'\1_\2'). tr('-', '_'). downcase end