lib/sidekiq_unique_jobs.rb in sidekiq-unique-jobs-6.0.0.rc6 vs lib/sidekiq_unique_jobs.rb in sidekiq-unique-jobs-6.0.0.rc7

- old
+ new

@@ -10,21 +10,35 @@ require 'sidekiq_unique_jobs/logging' require 'sidekiq_unique_jobs/sidekiq_worker_methods' require 'sidekiq_unique_jobs/connection' require 'sidekiq_unique_jobs/exceptions' require 'sidekiq_unique_jobs/util' +require 'sidekiq_unique_jobs/digests' require 'sidekiq_unique_jobs/cli' require 'sidekiq_unique_jobs/core_ext' require 'sidekiq_unique_jobs/timeout' require 'sidekiq_unique_jobs/scripts' require 'sidekiq_unique_jobs/unique_args' require 'sidekiq_unique_jobs/unlockable' require 'sidekiq_unique_jobs/locksmith' +require 'sidekiq_unique_jobs/lock/base_lock' +require 'sidekiq_unique_jobs/lock/until_executed' +require 'sidekiq_unique_jobs/lock/until_executing' +require 'sidekiq_unique_jobs/lock/until_expired' +require 'sidekiq_unique_jobs/lock/while_executing' +require 'sidekiq_unique_jobs/lock/while_executing_reject' +require 'sidekiq_unique_jobs/lock/until_and_while_executing' require 'sidekiq_unique_jobs/options_with_fallback' require 'sidekiq_unique_jobs/middleware' require 'sidekiq_unique_jobs/sidekiq_unique_ext' +require 'sidekiq_unique_jobs/on_conflict' +# Namespace for this gem +# +# Contains configuration and utility methods that belongs top level +# +# @author Mikael Henriksson <mikael@zoolutions.se> module SidekiqUniqueJobs include SidekiqUniqueJobs::Connection module_function @@ -34,36 +48,52 @@ :enabled, :unique_prefix, :logger, ) + # The current configuration (See: {.configure} on how to configure) 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 + # The current logger + # @return [Logger] the configured logger def logger config.logger end + # Set a new logger + # @param [Logger] other a new logger def logger=(other) config.logger = other end + # Change global configuration while yielding + # @yield control to the caller 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 + # Configure the gem + # + # This is usually called once at startup of an application + # @param [Hash] options global gem options + # @option options [Integer] :default_lock_timeout (default is 0) + # @option options [true,false] :enabled (default is true) + # @option options [String] :unique_prefix (default is 'uniquejobs') + # @option options [Logger] :logger (default is Sidekiq.logger) + # @yield control to the caller when given block def configure(options = {}) if block_given? yield config else options.each do |key, val|