module Afterparty::QueueHelpers

Attributes

options[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/afterparty/queue_helpers.rb, line 5
def initialize options = {}
  @options = options
  @options[:namespace] ||= :default
  @options[:sleep] ||= 10
  @options[:logger] ||= Logger.new($stderr)
  self
end

Public Instance Methods

authenticate(username, password) click to toggle source
# File lib/afterparty/queue_helpers.rb, line 78
def authenticate username, password
  raise 'Must set queue.config_login to use dashboard' if @login_block.nil?
  @login_block.call(username, password)
end
clear() click to toggle source
# File lib/afterparty/queue_helpers.rb, line 13
def clear
  AfterpartyJob.namespaced(@options[:namespace]).destroy_all
end
completed() click to toggle source
# File lib/afterparty/queue_helpers.rb, line 41
def completed
  AfterpartyJob.namespaced(@options[:namespace]).completed
end
config_login(&block) click to toggle source

&block takes a 'username' and 'password' argument. return true or false

# File lib/afterparty/queue_helpers.rb, line 74
def config_login &block
  @login_block = block
end
handle_exception(job, exception) click to toggle source
# File lib/afterparty/queue_helpers.rb, line 60
def handle_exception(job, exception)
  job.completed = true
  job.completed_at = DateTime.now
  job.has_error = true
  job.error_message = exception.message
  job.error_backtrace = exception.backtrace.join("\n")
  job.save
  logger_message = "Job Error: #{job.inspect}\n#{exception.message}"
  logger_message << "\n#{exception.backtrace.join("\n")}"
  @options[:logger].error logger_message
end
jobs() click to toggle source
# File lib/afterparty/queue_helpers.rb, line 17
def jobs
  AfterpartyJob.namespaced(@options[:namespace]).incomplete
end
jobs_empty?() click to toggle source
# File lib/afterparty/queue_helpers.rb, line 29
def jobs_empty?
  AfterpartyJob.namespaced(@options[:namespace]).valid.empty?
end
last_completed() click to toggle source
# File lib/afterparty/queue_helpers.rb, line 37
def last_completed
  AfterpartyJob.namespaced(@options[:namespace]).completed.first
end
next_valid_job() click to toggle source
# File lib/afterparty/queue_helpers.rb, line 25
def next_valid_job
  AfterpartyJob.namespaced(@options[:namespace]).valid.first
end
run(job) click to toggle source
# File lib/afterparty/queue_helpers.rb, line 45
def run(job)
  real_job = job.reify
  if real_job
    job.execute
  else
    job.has_error = true
    job.error_message = "Error marshaling job."
  end
  job.completed = true
  job.completed_at = DateTime.now
  job.save
rescue Exception => exception
  handle_exception job, exception
end
total_jobs_count() click to toggle source
# File lib/afterparty/queue_helpers.rb, line 33
def total_jobs_count
  AfterpartyJob.namespaced(@options[:namespace]).incomplete.count
end
valid_jobs() click to toggle source
# File lib/afterparty/queue_helpers.rb, line 21
def valid_jobs
  AfterpartyJob.namespaced(@options[:namespace]).valid
end