Sha256: 184f8ad8584da33b0f4b10e5266c8c68d01ae1f025d8dd2f2ef3520f2069f8bd

Contents?: true

Size: 865 Bytes

Versions: 6

Compression:

Stored size: 865 Bytes

Contents

require 'cellect'

module Cellect
  module Client
    require 'cellect/client/node_set'
    require 'cellect/client/connection'

    class << self
      attr_accessor :connection, :_node_set
    end

    # Disabled with lib/cellect/testing.rb
    def self.mock_zookeeper?
      false
    end

    # Sets up the set of server nodes
    def self.node_set(zk_url=nil)
      self._node_set ||= NodeSet.supervise(zk_url)
      _node_set.actors.first
    end

    def self.ready?
      node_set.ready?
    end

    # Selects a server for a user
    def self.choose_host
      node_set.nodes.values.sample
    end

    # Ensure a previously selected server is still available
    def self.host_exists?(ip)
      node_set.nodes.values.include? ip
    end

    Client.node_set
    Client.connection = Connection.pool size: ENV.fetch('CELLECT_POOL_SIZE', 100).to_i
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
cellect-client-1.3.3 lib/cellect/client.rb
cellect-client-1.3.2 lib/cellect/client.rb
cellect-client-1.3.1 lib/cellect/client.rb
cellect-client-1.3.0 lib/cellect/client.rb
cellect-client-1.2.0 lib/cellect/client.rb
cellect-client-1.1.0 lib/cellect/client.rb