module Sidekiq::Killswitch

Constants

BLACKHOLE_WORKERS_KEY_NAME
DEAD_QUEUE_WORKERS_KEY_NAME
VERSION

Public Class Methods

blackhole_add_worker(worker_name) click to toggle source
# File lib/sidekiq/killswitch.rb, line 28
def blackhole_add_worker(worker_name)
  worker_name = class_to_str(worker_name)

  redis_pool do |redis|
    redis.hset(BLACKHOLE_WORKERS_KEY_NAME, worker_name, Time.now)
  end
  logger.warn "#{worker_name} added to blackhole workers"
end
blackhole_remove_worker(worker_name) click to toggle source
# File lib/sidekiq/killswitch.rb, line 37
def blackhole_remove_worker(worker_name)
  worker_name = class_to_str(worker_name)

  redis_pool do |redis|
    redis.hdel(BLACKHOLE_WORKERS_KEY_NAME, worker_name)
  end
  logger.warn "#{worker_name} removed from blackhole workers"
end
blackhole_worker?(worker_name) click to toggle source
# File lib/sidekiq/killswitch.rb, line 46
def blackhole_worker?(worker_name)
  redis_pool do |redis|
    redis.hexists(BLACKHOLE_WORKERS_KEY_NAME, class_to_str(worker_name))
  end
end
blackhole_workers() click to toggle source
# File lib/sidekiq/killswitch.rb, line 52
def blackhole_workers
  redis_pool do |redis|
    redis.hgetall(BLACKHOLE_WORKERS_KEY_NAME)
  end
end
class_to_str(class_or_string) click to toggle source
# File lib/sidekiq/killswitch.rb, line 88
def class_to_str(class_or_string)
  class_or_string.is_a?(String) ? class_or_string : class_or_string.name
end
config() click to toggle source
# File lib/sidekiq/killswitch.rb, line 12
def config
  @config ||= Config.new
end
configure() { |config| ... } click to toggle source
# File lib/sidekiq/killswitch.rb, line 16
def configure(&block)
  yield config
end
dead_queue_add_worker(worker_name) click to toggle source
# File lib/sidekiq/killswitch.rb, line 58
def dead_queue_add_worker(worker_name)
  worker_name = class_to_str(worker_name)

  redis_pool do |redis|
    redis.hset(DEAD_QUEUE_WORKERS_KEY_NAME, worker_name, Time.now)
  end
  logger.warn "#{worker_name} added to dead queue workers"
end
dead_queue_remove_worker(worker_name) click to toggle source
# File lib/sidekiq/killswitch.rb, line 67
def dead_queue_remove_worker(worker_name)
  worker_name = class_to_str(worker_name)

  redis_pool do |redis|
    redis.hdel(DEAD_QUEUE_WORKERS_KEY_NAME, worker_name)
  end
  logger.warn "#{worker_name} removed from dead queue workers"
end
dead_queue_worker?(worker_name) click to toggle source
# File lib/sidekiq/killswitch.rb, line 76
def dead_queue_worker?(worker_name)
  redis_pool do |redis|
    redis.hexists(DEAD_QUEUE_WORKERS_KEY_NAME, class_to_str(worker_name))
  end
end
dead_queue_workers() click to toggle source
# File lib/sidekiq/killswitch.rb, line 82
def dead_queue_workers
  redis_pool do |redis|
    redis.hgetall(DEAD_QUEUE_WORKERS_KEY_NAME)
  end
end
logger() click to toggle source
# File lib/sidekiq/killswitch.rb, line 20
def logger
  config.logger
end
redis_pool(&block) click to toggle source
# File lib/sidekiq/killswitch.rb, line 24
def redis_pool(&block)
  Sidekiq.redis(&block)
end