Module: Afterparty::QueueHelpers
Instance Method Summary collapse
- #[](namespace) ⇒ Object
- #authenticate(username, password) ⇒ Object
- #clear ⇒ Object
- #completed ⇒ Object
- #completed_with_scores ⇒ Object
-
#config_login(&block) ⇒ Object
&block takes a ‘username’ and ‘password’ argument.
- #handle_exception(job, exception) ⇒ Object
- #initialize(options = {}) ⇒ Object
- #jobs ⇒ Object
- #jobs_empty? ⇒ Boolean
- #jobs_with_scores ⇒ Object
- #last_completed ⇒ Object
- #next_valid_job ⇒ Object
- #run(job) ⇒ Object
- #total_jobs_count ⇒ Object
- #valid_jobs ⇒ Object
Instance Method Details
#[](namespace) ⇒ Object
12 13 14 |
# File 'lib/afterparty/queue_helpers.rb', line 12 def [] namespace @temp_namespace = namespace end |
#authenticate(username, password) ⇒ Object
91 92 93 94 |
# File 'lib/afterparty/queue_helpers.rb', line 91 def authenticate username, password raise 'Must set queue.config_login to use dashboard' if @login_block.nil? @login_block.call(username, password) end |
#clear ⇒ Object
16 17 18 19 |
# File 'lib/afterparty/queue_helpers.rb', line 16 def clear # redis_call :del AfterpartyJob.namespaced(@options[:namespace]).destroy_all end |
#completed ⇒ Object
49 50 51 |
# File 'lib/afterparty/queue_helpers.rb', line 49 def completed AfterpartyJob.namespaced(@options[:namespace]).completed end |
#completed_with_scores ⇒ Object
53 54 55 56 |
# File 'lib/afterparty/queue_helpers.rb', line 53 def completed_with_scores @temp_namespace = "completed" hash_from_scores(redis_call(:zrange, -20, -1, withscores: true)).reverse end |
#config_login(&block) ⇒ Object
&block takes a ‘username’ and ‘password’ argument. return true or false
87 88 89 |
# File 'lib/afterparty/queue_helpers.rb', line 87 def config_login &block @login_block = block end |
#handle_exception(job, exception) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/afterparty/queue_helpers.rb', line 73 def handle_exception(job, exception) job.completed = true job.completed_at = DateTime.now job.has_error = true job. = exception. job.error_backtrace = exception.backtrace.join("\n") job.save = "Job Error: #{job.inspect}\n#{exception.}" << "\n#{exception.backtrace.join("\n")}" @options[:logger].error end |
#initialize(options = {}) ⇒ Object
4 5 6 7 8 9 10 |
# File 'lib/afterparty/queue_helpers.rb', line 4 def initialize = {} @options = @options[:namespace] ||= :default @options[:sleep] ||= 10 @options[:logger] ||= Logger.new($stderr) self end |
#jobs ⇒ Object
21 22 23 |
# File 'lib/afterparty/queue_helpers.rb', line 21 def jobs AfterpartyJob.namespaced(@options[:namespace]).incomplete end |
#jobs_empty? ⇒ Boolean
37 38 39 |
# File 'lib/afterparty/queue_helpers.rb', line 37 def jobs_empty? AfterpartyJob.namespaced(@options[:namespace]).valid.empty? end |
#jobs_with_scores ⇒ Object
25 26 27 |
# File 'lib/afterparty/queue_helpers.rb', line 25 def jobs_with_scores hash_from_scores(redis_call(:zrange, 0, -1, {withscores: true})) end |
#last_completed ⇒ Object
45 46 47 |
# File 'lib/afterparty/queue_helpers.rb', line 45 def last_completed AfterpartyJob.namespaced(@options[:namespace]).completed.first end |
#next_valid_job ⇒ Object
33 34 35 |
# File 'lib/afterparty/queue_helpers.rb', line 33 def next_valid_job AfterpartyJob.namespaced(@options[:namespace]).valid.first end |
#run(job) ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/afterparty/queue_helpers.rb', line 58 def run(job) real_job = job.reify if real_job job.execute else job.has_error = true job. = "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 ⇒ Object
41 42 43 |
# File 'lib/afterparty/queue_helpers.rb', line 41 def total_jobs_count AfterpartyJob.namespaced(@options[:namespace]).incomplete.count end |
#valid_jobs ⇒ Object
29 30 31 |
# File 'lib/afterparty/queue_helpers.rb', line 29 def valid_jobs AfterpartyJob.namespaced(@options[:namespace]).valid end |