module Sidekiq::Sync::ClassMethods
Public Instance Methods
perform_sync(*args)
click to toggle source
# File lib/sidekiq/sync/class_methods.rb, line 4 def perform_sync(*args) real_args = [] options = Sidekiq::Sync::Options.new for arg in args if arg.is_a? Sidekiq::Sync::Options options = arg else real_args << arg end end return_channel = "sidekiq-sync:#{SecureRandom::uuid}" self.perform_async(return_channel, *real_args) # queue_or_nil_if_timeout, value = Sidekiq::Sync.redis.blpop return_channel, timeout: options.timeout queue_or_nil_if_timeout, value = Sidekiq.redis do |r| r.blpop return_channel, timeout: options.timeout end unless queue_or_nil_if_timeout raise Sidekiq::Sync::TimeoutError if options.raise end value end