Sha256: 67334f747fee4aecf02841f9bc02abc1e8e1a0ddceadf1dd8cc42063540bc79c

Contents?: true

Size: 938 Bytes

Versions: 5

Compression:

Stored size: 938 Bytes

Contents

module Sidetiq
  module Actor
    def self.included(base)
      base.__send__(:include, Celluloid)
      base.finalizer :sidetiq_finalizer
    end

    def initialize(*args, &block)
      log_call "initialize"

      super

      # Link to Sidekiq::Manager when running in server-mode. In most
      # cases the supervisor is booted before Sidekiq has launched
      # fully, so defer this.
      if Sidekiq.server?
        after(0.1) { link_to_sidekiq_manager }
      end
    end

    private

    def sidetiq_finalizer
      log_call "shutting down ..."
    end

    def link_to_sidekiq_manager
      Sidekiq::CLI.instance.launcher.manager.link(current_actor)
    rescue NoMethodError
      debug "Can't link #{self.class.name}. Sidekiq::Manager not running. Retrying in 5 seconds ..."
      after(5) { link_to_sidekiq_manager }
    end

    def log_call(call)
      info "#{self.class.name} id: #{object_id} #{call}"
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sidetiq-0.7.0 lib/sidetiq/actor.rb
sidetiq-0.6.3 lib/sidetiq/actor.rb
sidetiq-0.6.2 lib/sidetiq/actor.rb
sidetiq-0.6.1 lib/sidetiq/actor.rb
sidetiq-0.6.0 lib/sidetiq/actor.rb