Module: Sidekiq::Batch::Callback
- Defined in:
- lib/sidekiq/batch/callback.rb
Defined Under Namespace
Classes: Worker
Class Method Summary collapse
Class Method Details
.call_if_needed(event, bid) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/sidekiq/batch/callback.rb', line 16 def call_if_needed(event, bid) needed = Sidekiq.redis do |r| r.multi do r.hget("BID-#{bid}", event) r.hset("BID-#{bid}", event, true) end end return if 'true' == needed[0] callback, opts, queue = Sidekiq.redis do |r| r.hmget("BID-#{bid}", "callback_#{event}", "callback_#{event}_opts", 'callback_queue') end return unless callback opts = JSON.parse(opts) if opts opts ||= {} queue ||= 'default' Sidekiq::Client.push('class' => Sidekiq::Batch::Callback::Worker, 'args' => [callback, event, opts, bid], 'queue' => queue) ensure Sidekiq::Batch.cleanup_redis(bid) if event == :success end |