Module: Logsy::SidekiqMiddleware

Defined in:
lib/logsy/sidekiq_middleware.rb,
lib/logsy/sidekiq_middleware/client.rb,
lib/logsy/sidekiq_middleware/server.rb

Overview

Sidekiq middleware namespace.

In a Rails app there is nothing to do: the Railtie calls SidekiqMiddleware.install! for you once Sidekiq is loaded (opt out with config.auto_register_sidekiq_middleware = false).

Outside Rails — or after opting out — require this file and register the middleware with a single call:

require 'logsy/sidekiq_middleware'
Logsy::SidekiqMiddleware.install!

Defined Under Namespace

Classes: Client, Server

Class Method Summary collapse

Class Method Details

.install!(sidekiq = ::Sidekiq) ⇒ Object

Registers the bundled middleware with Sidekiq:

- Client on the client chain (web/console enqueues a job)
- Client on the server's client chain (a running job enqueues another)
- Server on the server chain (a worker runs a job)

Idempotent: Sidekiq's Chain#add replaces an existing entry, so calling this twice (e.g. auto-registration plus a stray manual call) won't duplicate the middleware. sidekiq defaults to the ::Sidekiq constant and is injectable for testing.



28
29
30
31
32
33
34
35
36
37
# File 'lib/logsy/sidekiq_middleware.rb', line 28

def self.install!(sidekiq = ::Sidekiq)
  sidekiq.configure_client do |config|
    config.client_middleware { |chain| chain.add(Client) }
  end

  sidekiq.configure_server do |config|
    config.client_middleware { |chain| chain.add(Client) }
    config.server_middleware { |chain| chain.add(Server) }
  end
end