module Delayed::Backend::Sqs::Actions

Public Instance Methods

after_fork() click to toggle source
# File lib/delayed/backend/actions.rb, line 21
def after_fork
end
before_fork() click to toggle source
# File lib/delayed/backend/actions.rb, line 18
def before_fork
end
clear_locks!(*args) click to toggle source

No need to check locks

# File lib/delayed/backend/actions.rb, line 54
def clear_locks!(*args)
  true
end
db_time_now() click to toggle source
# File lib/delayed/backend/actions.rb, line 24
def db_time_now
  Time.now.utc
end
delete_all() click to toggle source
# File lib/delayed/backend/actions.rb, line 36
def delete_all
  deleted = 0

  Delayed::Worker.queues.each_with_index do |queue, index|
    loop do
      msgs = sqs.queues.named(queue_name(index)).receive_message({ :limit => 10})
      break if msgs.blank?
      msgs.each do |msg|
        msg.delete
        deleted += 1
      end
    end
  end

  puts "Messages removed: #{deleted}"
end
field(name, options = {}) click to toggle source
# File lib/delayed/backend/actions.rb, line 5
def field(name, options = {})
  default = options[:default] || nil
  define_method name do
    @attributes ||= {}
    @attributes[name.to_sym] || default
  end

  define_method "#{name}=" do |value|
    @attributes ||= {}
    @attributes[name.to_sym] = value
  end
end
find_available(worker_name, limit = 5, max_run_time = Worker.max_run_time) click to toggle source
# File lib/delayed/backend/actions.rb, line 28
def find_available(worker_name, limit = 5, max_run_time = Worker.max_run_time)
  Delayed::Worker.queues.each_with_index do |queue, index|
    message = sqs.queues.named(queue_name(index)).receive_message
    return [Delayed::Backend::Sqs::Job.new(message)] if message
  end
  []
end

Private Instance Methods

queue_name(index) click to toggle source
# File lib/delayed/backend/actions.rb, line 64
def queue_name(index)
  Delayed::Worker.queues[index]
end
sqs() click to toggle source
# File lib/delayed/backend/actions.rb, line 60
def sqs
  ::Delayed::Worker.sqs
end