Sha256: 8507e5665886cade7e7e04941bc0a6ded59c00996c4651b738cb1cc3d998f3ad

Contents?: true

Size: 738 Bytes

Versions: 1

Compression:

Stored size: 738 Bytes

Contents

module Sidekiq
  module Hol
    module Worker
      def self.included(base)
        raise ArgumentError, "You cannot include Sidekiq::Hol::Worker in an ActiveJob: #{base.name}" if base.ancestors.any? {|c| c.name == 'ActiveJob::Base' }

        base.include(Sidekiq::Worker) unless defined? base.perform_async
        base.extend(ClassMethods)
      end

      module ClassMethods
        def perform_hol_async(*args)
          client_hol_push('class' => self, 'args' => args)
        end

        def client_hol_push(item)
          pool = Thread.current[:sidekiq_via_pool] || get_sidekiq_options['pool'] || Sidekiq.redis_pool
          Sidekiq::Hol::Client.new(pool).hol_push(item.stringify_keys)
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sidekiq-hol-0.0.1 lib/sidekiq/hol/worker.rb