class Sidejobs::Queue

Public Instance Methods

add(data, options={}) click to toggle source
# File lib/sidejobs/queue.rb, line 4
def add(data, options={})
  Job.create(
    data: data,
    queue: (options[:queue] || 'default'),
    priority: (options[:priority] || 0),
    scheduled_at: options[:schedule_at]
  )
end
fetch() click to toggle source
# File lib/sidejobs/queue.rb, line 13
def fetch
  Job.where(state: %w(pending failing)).where(
    'attempts < ?',
    Sidejobs.configuration.max_attempts
  ).where(
    'scheduled_at <= ? OR scheduled_at IS NULL',
    Time.now
  ).order(priority: :desc).limit(Sidejobs.configuration.batch_size)
end