class Rjob::Scripts::RetryJob

Public Instance Methods

arg_params() click to toggle source
# File lib/rjob/scripts/retry_job.rb, line 4
def arg_params
  %i(next_retry_at retry_num bucket job_id job_payload prefix)
end
lua_script() click to toggle source
# File lib/rjob/scripts/retry_job.rb, line 8
  def lua_script
    <<~LUA
      local timestamp = ARGV[1]
      local retry_num = ARGV[2]
      local bucket = ARGV[3]
      local job_id = ARGV[4]
      local job_payload = ARGV[5]
      local prefix = ARGV[6]
      local r = redis

      local curr_job = job_id .. '!' .. retry_num .. '!' .. job_payload
      local new_job = job_id .. '!' .. (retry_num + 1) .. '!' .. job_payload

      r.call('lrem', prefix .. ':jobs:' .. bucket .. ':working', 1, curr_job)
      r.call('zadd', prefix .. ':scheduled:' .. bucket, timestamp, new_job)

      return job_id
    LUA
  end