Sha256: db8c3f32118ab8c3f1e62d61b71ade5865978a6529c74a643c5aacc0b033a1c3
Contents?: true
Size: 771 Bytes
Versions: 5
Compression:
Stored size: 771 Bytes
Contents
# docs/examples/events_02.rb require 'thread' require 'zk' class Events def initialize @zk = ZK.new @queue = Queue.new @path = '/zk-example-events01' end def do_something_with(data) puts "I was told to say #{data.inspect}" @queue.push(:got_event) end def run @zk.register(@path) do |event| if event.node_changed? or event.node_created? data = @zk.get(@path, watch: true).first # fetch the latest data and re-set watch do_something_with(data) end end @zk.delete(@path) rescue ZK::Exceptions::NoNode @zk.stat(@path, watch: true) @zk.create(@path, 'Hello, events!') @queue.pop @zk.set(@path, "ooh, an update!") @queue.pop ensure @zk.close! end end Events.new.run
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
zk-1.2.0 | docs/examples/events_02.rb |
zk-1.1.1 | docs/examples/events_02.rb |
zk-1.1.0 | docs/examples/events_02.rb |
zk-1.0.0 | docs/examples/events_02.rb |
zk-1.0.0.rc.1 | docs/examples/events_02.rb |