class ChainedJob::CleanUpQueue

Constants

TRIM_STEP_SIZE

Attributes

job_arguments_key[R]

Public Class Methods

new(job_arguments_key) click to toggle source
# File lib/chained_job/clean_up_queue.rb, line 15
def initialize(job_arguments_key)
  @job_arguments_key = job_arguments_key
end
run(job_arguments_key) click to toggle source
# File lib/chained_job/clean_up_queue.rb, line 7
def self.run(job_arguments_key)
  new(job_arguments_key).run
end

Public Instance Methods

run() click to toggle source

rubocop:disable Metrics/AbcSize

# File lib/chained_job/clean_up_queue.rb, line 20
def run
  loop do
    tag = ChainedJob.redis.spop(tag_list)

    break unless tag

    redis_key = Helpers.redis_key(job_key, tag)
    size = ChainedJob.redis.llen(redis_key)
    (size / TRIM_STEP_SIZE).times { ChainedJob.redis.ltrim(redis_key, 0, -TRIM_STEP_SIZE) }

    ChainedJob.redis.del(redis_key)
  end
end

Private Instance Methods

job_key() click to toggle source
# File lib/chained_job/clean_up_queue.rb, line 41
def job_key
  @job_key ||= Helpers.job_key(job_arguments_key)
end
tag_list() click to toggle source

rubocop:enable Metrics/AbcSize

# File lib/chained_job/clean_up_queue.rb, line 37
def tag_list
  @tag_list ||= Helpers.tag_list(job_key)
end