Module: QPush::Server::JobHelpers
- Included in:
- Job
- Defined in:
- lib/qpush/server/jobs.rb
Instance Method Summary collapse
- #cron_at ⇒ Object
- #cron_job? ⇒ Boolean
- #dead_job? ⇒ Boolean
- #delay_job? ⇒ Boolean
- #delay_until ⇒ Object
- #mark_failed ⇒ Object
- #mark_success ⇒ Object
- #perform_job? ⇒ Boolean
- #retry_at ⇒ Object
- #retry_job? ⇒ Boolean
Instance Method Details
#cron_at ⇒ Object
44 45 46 47 48 |
# File 'lib/qpush/server/jobs.rb', line 44 def cron_at CronParser.new(@cron).next(Time.now).to_i rescue => e raise ServerError, e. end |
#cron_job? ⇒ Boolean
36 37 38 |
# File 'lib/qpush/server/jobs.rb', line 36 def cron_job? @start_at < Time.now.to_i && !@cron.empty? end |
#dead_job? ⇒ Boolean
40 41 42 |
# File 'lib/qpush/server/jobs.rb', line 40 def dead_job? @total_fail >= @retry_max end |
#delay_job? ⇒ Boolean
32 33 34 |
# File 'lib/qpush/server/jobs.rb', line 32 def delay_job? (@start_at > Time.now.to_i && @cron.empty?) || cron_job? end |
#delay_until ⇒ Object
50 51 52 |
# File 'lib/qpush/server/jobs.rb', line 50 def delay_until @cron.empty? ? @start_at : cron_at end |
#mark_failed ⇒ Object
19 20 21 22 |
# File 'lib/qpush/server/jobs.rb', line 19 def mark_failed @failed = true @total_fail += 1 end |
#mark_success ⇒ Object
14 15 16 17 |
# File 'lib/qpush/server/jobs.rb', line 14 def mark_success @failed = false @total_success += 1 end |
#perform_job? ⇒ Boolean
28 29 30 |
# File 'lib/qpush/server/jobs.rb', line 28 def perform_job? @start_at < Time.now.to_i && @cron.empty? end |
#retry_at ⇒ Object
54 55 56 |
# File 'lib/qpush/server/jobs.rb', line 54 def retry_at Time.now.to_i + ((@total_fail**4) + 15 + (rand(30) * (@total_fail + 1))) end |
#retry_job? ⇒ Boolean
24 25 26 |
# File 'lib/qpush/server/jobs.rb', line 24 def retry_job? @retry_max > @total_fail end |