Module: SidekiqUniqueJobs

Includes:
Connection
Defined in:
lib/sidekiq_unique_jobs.rb,
lib/sidekiq_unique_jobs/web.rb,
lib/sidekiq_unique_jobs/util.rb,
lib/sidekiq_unique_jobs/digests.rb,
lib/sidekiq_unique_jobs/logging.rb,
lib/sidekiq_unique_jobs/scripts.rb,
lib/sidekiq_unique_jobs/timeout.rb,
lib/sidekiq_unique_jobs/version.rb,
lib/sidekiq_unique_jobs/constants.rb,
lib/sidekiq_unique_jobs/locksmith.rb,
lib/sidekiq_unique_jobs/connection.rb,
lib/sidekiq_unique_jobs/exceptions.rb,
lib/sidekiq_unique_jobs/normalizer.rb,
lib/sidekiq_unique_jobs/unlockable.rb,
lib/sidekiq_unique_jobs/on_conflict.rb,
lib/sidekiq_unique_jobs/unique_args.rb,
lib/sidekiq_unique_jobs/web/helpers.rb,
lib/sidekiq_unique_jobs/lock/base_lock.rb,
lib/sidekiq_unique_jobs/on_conflict/log.rb,
lib/sidekiq_unique_jobs/client/middleware.rb,
lib/sidekiq_unique_jobs/on_conflict/raise.rb,
lib/sidekiq_unique_jobs/server/middleware.rb,
lib/sidekiq_unique_jobs/lock/until_expired.rb,
lib/sidekiq_unique_jobs/on_conflict/reject.rb,
lib/sidekiq_unique_jobs/timeout/calculator.rb,
lib/sidekiq_unique_jobs/lock/until_executed.rb,
lib/sidekiq_unique_jobs/on_conflict/replace.rb,
lib/sidekiq_unique_jobs/lock/until_executing.rb,
lib/sidekiq_unique_jobs/lock/while_executing.rb,
lib/sidekiq_unique_jobs/on_conflict/strategy.rb,
lib/sidekiq_unique_jobs/options_with_fallback.rb,
lib/sidekiq_unique_jobs/on_conflict/reschedule.rb,
lib/sidekiq_unique_jobs/sidekiq_worker_methods.rb,
lib/sidekiq_unique_jobs/on_conflict/null_strategy.rb,
lib/sidekiq_unique_jobs/lock/while_executing_reject.rb,
lib/sidekiq_unique_jobs/lock/until_and_while_executing.rb

Overview

Namespace for this gem

Contains configuration and utility methods that belongs top level

Author:

Defined Under Namespace

Modules: Client, Connection, Digests, Logging, Normalizer, OnConflict, OptionsWithFallback, Scripts, Server, SidekiqWorkerMethods, Timeout, Unlockable, Util, Web Classes: Conflict, Lock, Locksmith, ScriptError, UniqueArgs, UnknownLock

Constant Summary collapse

VERSION =
'6.0.1'

Class Method Summary collapse

Methods included from Connection

#redis

Class Method Details

.configObject

The current configuration (See: configure on how to configure)



54
55
56
57
58
59
60
61
62
# File 'lib/sidekiq_unique_jobs.rb', line 54

def config
  # Arguments here need to match the definition of the new class (see above)
  @config ||= Concurrent::MutableStruct::Config.new(
    0,
    true,
    'uniquejobs',
    Sidekiq.logger,
  )
end

.configure(options = {}) { ... } ⇒ Object

Configure the gem

This is usually called once at startup of an application

Parameters:

  • options (Hash) (defaults to: {})

    global gem options

Options Hash (options):

  • :default_lock_timeout (Integer) — default: default is 0
  • :enabled (true, false) — default: default is true
  • :unique_prefix (String) — default: default is 'uniquejobs'
  • :logger (Logger) — default: default is Sidekiq.logger

Yields:

  • control to the caller when given block



96
97
98
99
100
101
102
103
104
# File 'lib/sidekiq_unique_jobs.rb', line 96

def configure(options = {})
  if block_given?
    yield config
  else
    options.each do |key, val|
      config.send("#{key}=", val)
    end
  end
end

.loggerLogger

The current logger

Returns:

  • (Logger)

    the configured logger



66
67
68
# File 'lib/sidekiq_unique_jobs.rb', line 66

def logger
  config.logger
end

.logger=(other) ⇒ Object

Set a new logger

Parameters:

  • other (Logger)

    a new logger



72
73
74
# File 'lib/sidekiq_unique_jobs.rb', line 72

def logger=(other)
  config.logger = other
end

.redis_versionObject



106
107
108
# File 'lib/sidekiq_unique_jobs.rb', line 106

def redis_version
  @redis_version ||= redis { |conn| conn.info('server')['redis_version'] }
end

.use_config(tmp_config) { ... } ⇒ Object

Change global configuration while yielding

Yields:

  • control to the caller



78
79
80
81
82
83
84
85
# File 'lib/sidekiq_unique_jobs.rb', line 78

def use_config(tmp_config)
  fail ::ArgumentError, "#{name}.#{__method__} needs a block" unless block_given?

  old_config = config.to_h
  configure(tmp_config)
  yield
  configure(old_config)
end