Sha256: 687aa25cf032c9f723fcd053be73a01dca6d3f0478330688f2d88f15be6979af

Contents?: true

Size: 1.29 KB

Versions: 26

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module SidekiqUniqueJobs
  # The unique sidekiq middleware for the server processor
  #
  # @author Mikael Henriksson <mikael@mhenrixon.com>
  class Server
    DEATH_HANDLER = (lambda do |job, _ex|
      return unless (digest = job["lock_digest"])

      SidekiqUniqueJobs::Digests.new.delete_by_digest(digest)
    end).freeze
    #
    # Configure the server middleware
    #
    #
    # @return [Sidekiq] the sidekiq configuration
    #
    def self.configure(config)
      config.on(:startup)  { start }
      config.on(:shutdown) { stop }

      return unless config.respond_to?(:death_handlers)

      config.death_handlers << death_handler
    end

    #
    # Start the sidekiq unique jobs server process
    #
    #
    # @return [void]
    #
    def self.start
      SidekiqUniqueJobs::UpdateVersion.call
      SidekiqUniqueJobs::UpgradeLocks.call
      SidekiqUniqueJobs::Orphans::Manager.start
      SidekiqUniqueJobs::Orphans::ReaperResurrector.start
    end

    #
    # Stop the sidekiq unique jobs server process
    #
    #
    # @return [void]
    #
    def self.stop
      SidekiqUniqueJobs::Orphans::Manager.stop
    end

    #
    # A death handler for dead jobs
    #
    #
    # @return [lambda]
    #
    def self.death_handler
      DEATH_HANDLER
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
sidekiq-unique-jobs-7.1.33 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.32 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.31 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.30 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.29 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.28 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.27 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.26 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.25 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.24 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.23 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.22 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.21 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.20 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.19 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.18 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.17 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.16 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.15 lib/sidekiq_unique_jobs/server.rb
sidekiq-unique-jobs-7.1.14 lib/sidekiq_unique_jobs/server.rb