Module: Sidekiq::Middleware

Defined in:
lib/sidekiq/middleware/chain.rb

Overview

Middleware is code configured to run before/after a message is processed. It is patterned after Rack middleware. Middleware exists for the client side (pushing jobs onto the queue) as well as the server side (when jobs are actually processed).

To add middleware for the client:

Sidekiq.configure_client do |config| config.client_middleware do |chain| chain.add MyClientHook end end

To modify middleware for the server, just call with another block:

Sidekiq.configure_server do |config| config.server_middleware do |chain| chain.add MyServerHook chain.remove ActiveRecord end end

To insert immediately preceding another entry:

Sidekiq.configure_client do |config| config.client_middleware do |chain| chain.insert_before ActiveRecord, MyClientHook end end

To insert immediately after another entry:

Sidekiq.configure_client do |config| config.client_middleware do |chain| chain.insert_after ActiveRecord, MyClientHook end end

This is an example of a minimal server middleware:

class MyServerHook def call(worker_instance, msg, queue) puts "Before work" yield puts "After work" end end

This is an example of a minimal client middleware, note the method must return the result or the job will not push to Redis:

class MyClientHook def call(worker_class, msg, queue, redis_pool) puts "Before push" result = yield puts "After push" result end end

Defined Under Namespace

Modules: I18n Classes: Chain, Entry