module ResqueRetry::Server::Helpers

Helper methods used by retry tab.

Public Instance Methods

cancel_retry(job) click to toggle source

cancels job retry

# File lib/resque-retry/server.rb, line 76
def cancel_retry(job)
  klass = get_class(job)
  if klass
    retry_key = retry_key_for_job(job)
    Resque.remove_delayed(klass, *job['args'])
    Resque.redis.del("failure-#{retry_key}")
    Resque.redis.del(retry_key)
  else
    raise 'cannot cancel, job not found'
  end
end
local_template(path) click to toggle source

reads a ‘local’ template file.

# File lib/resque-retry/server.rb, line 70
def local_template(path)
  # Is there a better way to specify alternate template locations with sinatra?
  File.read(File.join(File.dirname(__FILE__), "server/views/#{path}"))
end
retry_attempts_for_job(job) click to toggle source

gets the number of retry attempts for a job.

# File lib/resque-retry/server.rb, line 51
def retry_attempts_for_job(job)
  retry_key = retry_key_for_job(job)
  if retry_key
    Resque.redis.get(retry_key)
  else
    nil
  end
end
retry_failure_details(retry_key) click to toggle source

gets the failure details hash for a job.

# File lib/resque-retry/server.rb, line 61
def retry_failure_details(retry_key)
  if retry_key
    Resque.decode(Resque.redis.get("failure-#{retry_key}"))
  else
    nil
  end
end
retry_key_for_job(job) click to toggle source

builds a retry key for the specified job.

# File lib/resque-retry/server.rb, line 41
def retry_key_for_job(job)
  klass = get_class(job)
  if klass.respond_to?(:redis_retry_key)
    klass.redis_retry_key(job['args'])
  else
    nil
  end
end

Private Instance Methods

get_class(job) click to toggle source
# File lib/resque-retry/server.rb, line 89
def get_class(job)
  begin
    Resque::Job.new(nil, nil).constantize(job['class'])
  rescue
    nil
  end
end