Sha256: ef5dc6d0758753f8f1741626e21a71c720f2915a10f7a5e5076b452624dc6335

Contents?: true

Size: 890 Bytes

Versions: 7

Compression:

Stored size: 890 Bytes

Contents

require 'forwardable'
require_relative 'strategy'
require_relative 'middleware'
require_relative './util'
require_relative '../upperkut'

module Upperkut
  module Worker
    def self.included(base)
      base.extend(ClassMethods)
    end

    module ClassMethods
      extend Forwardable

      def_delegators :setup, :strategy, :middlewares
      def_delegators :strategy, :push_items, :size, :latency, :clear

      def push_items(items)
        strategy.push_items(items)
      end

      def fetch_items
        strategy.fetch_items(setup.batch_size)
      end

      def setup_upperkut
        yield(setup) if block_given?
      end

      def setup
        @@setup ||=
          begin
            default = Upperkut::Configuration.default.clone
            default.strategy ||= Upperkut::Strategy.new(self, default.redis)
            default
          end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
upperkut-0.4.6 lib/upperkut/worker.rb
upperkut-0.4.5 lib/upperkut/worker.rb
upperkut-0.4.4 lib/upperkut/worker.rb
upperkut-0.4.3 lib/upperkut/worker.rb
upperkut-0.4.2 lib/upperkut/worker.rb
upperkut-0.4.1 lib/upperkut/worker.rb
upperkut-0.4.0 lib/upperkut/worker.rb