Class: Ekylibre::MultiTenancy::Middleware::SidekiqMiddleware::ContainerAwareServerMiddleware
- Inherits:
-
Object
- Object
- Ekylibre::MultiTenancy::Middleware::SidekiqMiddleware::ContainerAwareServerMiddleware
- Defined in:
- lib/ekylibre/multi_tenancy/middleware/sidekiq_middleware/container_aware_server_middleware.rb
Overview
Server Sidekiq middleware switching to the correct tenant (if any) based on the job context
Instance Method Summary collapse
Instance Method Details
#call(worker_class, item, queue) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/ekylibre/multi_tenancy/middleware/sidekiq_middleware/container_aware_server_middleware.rb', line 10 def call(worker_class, item, queue) tenant = item.fetch('tenant', nil) container = item.fetch('container').dup PluginSystem::GlobalContainer.replace_with(container) do item['container'] = container if tenant.nil? yield else container .get(TenantSwitcher) .switch(tenant) { yield } end end end |