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
34 35 36 37 38 |
# File 'lib/qpush/server/jobs.rb', line 34 def cron_at CronParser.new(@cron).next(Time.now).to_i rescue => e raise ServerError, e. end |
#cron_job? ⇒ Boolean
26 27 28 |
# File 'lib/qpush/server/jobs.rb', line 26 def cron_job? @start_at < Time.now.to_i && !@cron.empty? end |
#dead_job? ⇒ Boolean
30 31 32 |
# File 'lib/qpush/server/jobs.rb', line 30 def dead_job? @total_fail >= @retry_max end |
#delay_job? ⇒ Boolean
22 23 24 |
# File 'lib/qpush/server/jobs.rb', line 22 def delay_job? (@start_at > Time.now.to_i && @cron.empty?) || cron_job? end |
#delay_until ⇒ Object
40 41 42 |
# File 'lib/qpush/server/jobs.rb', line 40 def delay_until @cron.empty? ? @start_at : cron_at end |
#mark_failed ⇒ Object
9 10 11 12 |
# File 'lib/qpush/server/jobs.rb', line 9 def mark_failed @failed = true @total_fail += 1 end |
#mark_success ⇒ Object
4 5 6 7 |
# File 'lib/qpush/server/jobs.rb', line 4 def mark_success @failed = false @total_success += 1 end |
#perform_job? ⇒ Boolean
18 19 20 |
# File 'lib/qpush/server/jobs.rb', line 18 def perform_job? @start_at < Time.now.to_i && @cron.empty? end |
#retry_at ⇒ Object
44 45 46 |
# File 'lib/qpush/server/jobs.rb', line 44 def retry_at Time.now.to_i + ((@total_fail**4) + 15 + (rand(30) * (@total_fail + 1))) end |
#retry_job? ⇒ Boolean
14 15 16 |
# File 'lib/qpush/server/jobs.rb', line 14 def retry_job? @retry_max > @total_fail end |