Sha256: b0d70ff23383aab30def0e0ea1c698f1c68b3782d394d52d3e82ac468239118d
Contents?: true
Size: 1.76 KB
Versions: 3
Compression:
Stored size: 1.76 KB
Contents
require 'proletariat/version' require 'concurrent' require 'bunny' require 'logger' require 'forwardable' require 'proletariat/concurrency/actor' require 'proletariat/concurrency/poolable_actor' require 'proletariat/util/worker_description_parser' require 'proletariat/configuration' require 'proletariat/exception_handler' require 'proletariat/manager' require 'proletariat/message' require 'proletariat/publisher' require 'proletariat/queue_config' require 'proletariat/runner' require 'proletariat/subscriber' require 'proletariat/worker' require 'proletariat/exception_handler/drop' require 'proletariat/exception_handler/exponential_backoff' # Public: Creates the Proletariat namespace and holds a process-wide Runner # instance as well as access to the configuration attributes. module Proletariat class << self extend Forwardable # Public: Delegate lifecycle calls to the process-wide Runner. def_delegators :runner, :run, :running?, :stop # Public: Allows configuration of Proletariat via given block. # # block - Block containing configuration calls. # # Returns nil. def configure(&block) config.configure_with_block(&block) nil end def publish(to, body = '', headers = {}) publisher_pool << Message.new(to, body, headers) end def runner @runner ||= Runner.new end def method_missing(method_sym, *arguments, &block) if config.respond_to? method_sym config.send(method_sym, *arguments, &block) else super end end private # Internal: Global configuration object. def config @config ||= Configuration.new end def publisher_pool @publisher_pool ||= Publisher.pool(Proletariat.publisher_threads) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
proletariat-0.1.2 | lib/proletariat.rb |
proletariat-0.1.1 | lib/proletariat.rb |
proletariat-0.1.0 | lib/proletariat.rb |