class QPush::Web::Apis::Retries

Public Class Methods

new(start, count) click to toggle source
# File lib/qpush/web/apis/retries.rb, line 5
def initialize(start, count)
  @start = start ? start.to_i : 0
  @count = count ? count.to_i : 10
  @jobs = nil
end

Public Instance Methods

call() click to toggle source
# File lib/qpush/web/apis/retries.rb, line 11
def call
  retrieve_jobs
  update_jobs
  trim_jobs
end

Private Instance Methods

retrieve_jobs() click to toggle source
# File lib/qpush/web/apis/retries.rb, line 19
def retrieve_jobs
  @jobs = Web.redis do |conn|
    conn.zrange(Web.keys[:delay], 0, -1, with_scores: true)
  end
end
trim_jobs() click to toggle source
# File lib/qpush/web/apis/retries.rb, line 33
def trim_jobs
  @jobs.compact!
  @jobs[@start, @count]
end
update_jobs() click to toggle source
# File lib/qpush/web/apis/retries.rb, line 25
def update_jobs
  @jobs.map! do |job|
    hash = JSON.parse(job.first, symbolize_names: true).merge(perform_at: job.last)
    next unless hash[:failed]
    hash
  end
end