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
46 47 48 49 50 |
# File 'lib/qpush/server/jobs.rb', line 46 def cron_at CronParser.new(@cron).next(Time.now).to_i rescue => e raise ServerError, e. end |
#cron_job? ⇒ Boolean
38 39 40 |
# File 'lib/qpush/server/jobs.rb', line 38 def cron_job? @start_at < Time.now.to_i && !@cron.empty? end |
#dead_job? ⇒ Boolean
42 43 44 |
# File 'lib/qpush/server/jobs.rb', line 42 def dead_job? @total_fail >= @retry_max end |
#delay_job? ⇒ Boolean
34 35 36 |
# File 'lib/qpush/server/jobs.rb', line 34 def delay_job? (@start_at > Time.now.to_i && @cron.empty?) || cron_job? end |
#delay_until ⇒ Object
52 53 54 |
# File 'lib/qpush/server/jobs.rb', line 52 def delay_until @cron.empty? ? @start_at : cron_at end |
#mark_failed ⇒ Object
21 22 23 24 |
# File 'lib/qpush/server/jobs.rb', line 21 def mark_failed @failed = true @total_fail += 1 end |
#mark_success ⇒ Object
16 17 18 19 |
# File 'lib/qpush/server/jobs.rb', line 16 def mark_success @failed = false @total_success += 1 end |
#perform_job? ⇒ Boolean
30 31 32 |
# File 'lib/qpush/server/jobs.rb', line 30 def perform_job? @start_at < Time.now.to_i && @cron.empty? end |
#retry_at ⇒ Object
56 57 58 |
# File 'lib/qpush/server/jobs.rb', line 56 def retry_at Time.now.to_i + ((@total_fail**4) + 15 + (rand(30) * (@total_fail + 1))) end |
#retry_job? ⇒ Boolean
26 27 28 |
# File 'lib/qpush/server/jobs.rb', line 26 def retry_job? @retry_max > @total_fail end |