Module: ZK
- Defined in:
- lib/zk.rb,
lib/zk/find.rb,
lib/zk/pool.rb,
lib/zk/stat.rb,
lib/zk/event.rb,
lib/zk/client.rb,
lib/zk/locker.rb,
lib/zk/logging.rb,
lib/zk/mongoid.rb,
lib/zk/version.rb,
lib/zk/election.rb,
lib/zk/exceptions.rb,
lib/zk/extensions.rb,
lib/zk/threadpool.rb,
lib/zk/client/base.rb,
lib/zk/event_handler.rb,
lib/zk/message_queue.rb,
lib/zk/client/threaded.rb,
lib/zk/client/unixisms.rb,
lib/zk/threaded_callback.rb,
lib/zk/client/state_mixin.rb,
lib/zk/client/conveniences.rb,
lib/zk/event_handler_subscription.rb,
lib/zk/event_handler_subscription/base.rb,
lib/zk/event_handler_subscription/actor.rb
Defined Under Namespace
Modules: Client, Election, Event, EventHandlerSubscription, Exceptions, Extensions, Find, Locker, Logging, Mongoid, Pool, Stat Classes: EventHandler, MessageQueue, ThreadedCallback, Threadpool
Constant Summary collapse
- VERSION =
"1.1.0"
Class Attribute Summary collapse
-
.default_chroot ⇒ Object
what chroot path should ZK.new connect to when given no options.
-
.default_host ⇒ Object
what host should ZK.new connect to when given no options.
-
.default_port ⇒ Object
what port should ZK.new connect to when given no options.
Class Method Summary collapse
-
.logger ⇒ Object
The logger used by the ZK library.
-
.logger=(logger) ⇒ Object
Assign the Logger instance to be used by ZK.
-
.new(connection_str, opts = {}, &block) ⇒ Object
Create a new ZK::Client instance.
-
.new_pool(host, opts = {}) ⇒ Object
creates a new ZK::Pool::Bounded with the default options.
-
.open(*args) ⇒ Object
Like new, yields a connection to the given block and closes it when the block returns.
- .ruby_187? ⇒ Boolean
- .ruby_19? ⇒ Boolean
Class Attribute Details
.default_chroot ⇒ Object
what chroot path should ZK.new connect to when given no options
57 58 59 |
# File 'lib/zk.rb', line 57 def default_chroot @default_chroot end |
.default_host ⇒ Object
what host should ZK.new connect to when given no options
51 52 53 |
# File 'lib/zk.rb', line 51 def default_host @default_host end |
.default_port ⇒ Object
what port should ZK.new connect to when given no options
54 55 56 |
# File 'lib/zk.rb', line 54 def default_port @default_port end |
Class Method Details
.logger ⇒ Object
The logger used by the ZK library. uses a Logger stderr with Logger::ERROR level. The only thing that should ever be logged are exceptions that are swallowed by background threads.
You can change this logger by setting ZK#logger= to an object that implements the stdllb Logger API.
75 76 77 |
# File 'lib/zk.rb', line 75 def self.logger @logger end |
.logger=(logger) ⇒ Object
Assign the Logger instance to be used by ZK
80 81 82 |
# File 'lib/zk.rb', line 80 def self.logger=(logger) @logger = logger end |
.new(connection_str, opts = {}, &block) ⇒ Object
As it says in the ZooKeeper documentation, if you are running a cluster: "The list of ZooKeeper servers used by the client must match the list of ZooKeeper servers that each ZooKeeper server has. Things can work, although not optimally, if the client list is a subset of the real list of ZooKeeper servers, but not if the client lists ZooKeeper servers not in the ZooKeeper cluster."
Create a new ZK::Client instance. If no arguments are given, the default
config of localhost:2181
will be used. Otherwise all args will be passed
to ZK::Client#new
if a block is given, it will be yielded the client before the connection is established, this is useful for registering connected-state handlers.
Since 1.0, if you pass a chrooted host string, i.e. localhost:2181/foo/bar/baz
this
method will create two connections. The first will be short lived, and will create the
chroot path, the second will be the chrooted one and returned to the user. This is
meant as a convenience to users who want to use chrooted connections.
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/zk.rb', line 172 def self.new(*args, &block) opts = args. chroot_opt = opts.fetch(:chroot, :create) args = [default_connection_string] if args.empty? # the ZK.new() case if args.first.kind_of?(String) if new_cnx_str = do_chroot_setup(args.first, chroot_opt) args[0] = new_cnx_str end else raise ArgumentError, "cannot create a connection given args array: #{args}" end opts.delete(:chroot_opt) args << opts Client.new(*args, &block) end |
.new_pool(host, opts = {}) ⇒ Object
creates a new ZK::Pool::Bounded with the default options.
206 207 208 |
# File 'lib/zk.rb', line 206 def self.new_pool(host, opts={}) ZK::Pool::Bounded.new(host, opts) end |
.open(*args) ⇒ Object
Like new, yields a connection to the given block and closes it when the block returns
196 197 198 199 200 201 202 203 |
# File 'lib/zk.rb', line 196 def self.open(*args) cnx = new(*args) yield cnx ensure cnx.close! if cnx # XXX: need some way of waiting for the connection to reach closed? state # ensure there's no leakage end |
.ruby_187? ⇒ Boolean
224 225 226 |
# File 'lib/zk.rb', line 224 def self.ruby_187? (RUBY_VERSION == '1.8.7') end |
.ruby_19? ⇒ Boolean
220 221 222 |
# File 'lib/zk.rb', line 220 def self.ruby_19? (RUBY_VERSION =~ /\A1\.9\.[2-9]\Z/) end |