Module: Afterparty::QueueHelpers

Included in:
Queue, Worker
Defined in:
lib/afterparty/queue_helpers.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



3
4
5
# File 'lib/afterparty/queue_helpers.rb', line 3

def options
  @options
end

Instance Method Details

#authenticate(username, password) ⇒ Object



78
79
80
81
# 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

#clearObject



13
14
15
# File 'lib/afterparty/queue_helpers.rb', line 13

def clear
  AfterpartyJob.namespaced(@options[:namespace]).destroy_all
end

#completedObject



41
42
43
# File 'lib/afterparty/queue_helpers.rb', line 41

def completed
  AfterpartyJob.namespaced(@options[:namespace]).completed
end

#config_login(&block) ⇒ Object

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



74
75
76
# File 'lib/afterparty/queue_helpers.rb', line 74

def  &block
  @login_block = block
end

#handle_exception(job, exception) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
# 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

#initialize(options = {}) ⇒ Object



5
6
7
8
9
10
11
# 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

#jobsObject



17
18
19
# File 'lib/afterparty/queue_helpers.rb', line 17

def jobs
  AfterpartyJob.namespaced(@options[:namespace]).incomplete
end

#jobs_empty?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/afterparty/queue_helpers.rb', line 29

def jobs_empty?
  AfterpartyJob.namespaced(@options[:namespace]).valid.empty?
end

#last_completedObject



37
38
39
# File 'lib/afterparty/queue_helpers.rb', line 37

def last_completed
  AfterpartyJob.namespaced(@options[:namespace]).completed.first
end

#next_valid_jobObject



25
26
27
# File 'lib/afterparty/queue_helpers.rb', line 25

def next_valid_job
  AfterpartyJob.namespaced(@options[:namespace]).valid.first
end

#run(job) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
# 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_countObject



33
34
35
# File 'lib/afterparty/queue_helpers.rb', line 33

def total_jobs_count
  AfterpartyJob.namespaced(@options[:namespace]).incomplete.count
end

#valid_jobsObject



21
22
23
# File 'lib/afterparty/queue_helpers.rb', line 21

def valid_jobs
  AfterpartyJob.namespaced(@options[:namespace]).valid
end