Module: Delayed::MessageSending

Defined in:
lib/delayed/message_sending.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#send_later(sqs_queue, method, *args) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/delayed/message_sending.rb', line 3

def send_later(sqs_queue, method, *args)
  delayed_method = Delayed::PerformableMethod.new(self, method.to_sym, args)

  # If an actual queue was provided and the message size is less than 8K, it's appended to the queue
  if sqs_queue.is_a?(RightAws::SqsGen2::Queue) && delayed_method.to_yaml.size < 8192
    Delayed::Job.enqueue(sqs_queue, delayed_method)
  else
    # else the method is executed, no queueing
    self.send method.to_sym, *args #.map{|a| a}
  end
end