Sha256: ec221f43be244288a17eae630f0f36141b67210fe4a4251e8ce20a91160b9665

Contents?: true

Size: 946 Bytes

Versions: 5

Compression:

Stored size: 946 Bytes

Contents

require 'forwardable'
require 'upperkut/strategies/buffered_queue'
require 'upperkut/middleware'
require 'upperkut/util'
require 'upperkut'

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

    module ClassMethods
      extend Forwardable

      def_delegators :setup, :strategy, :server_middlewares, :client_middlewares
      def_delegators :strategy, :metrics, :clear

      def push_items(items)
        client_middlewares.invoke(self, items) do
          strategy.push_items(items)
        end
      end

      def fetch_items
        strategy.fetch_items
      end

      def setup_upperkut
        yield(setup) if block_given?
      end

      def setup
        @config ||=
          begin
            config = Upperkut::Configuration.default.clone
            config.strategy ||= Upperkut::Strategies::BufferedQueue.new(self)
            config
          end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
upperkut-0.8.1 lib/upperkut/worker.rb
upperkut-0.8.0 lib/upperkut/worker.rb
upperkut-0.7.5 lib/upperkut/worker.rb
upperkut-0.7.4 lib/upperkut/worker.rb
upperkut-0.7.2 lib/upperkut/worker.rb