2013-05-15 38 views
0

我已經安裝了紅寶石2.0.0p195及以下的寶石紅寶石 - 動物園管理員寶石版本錯誤的參數數目(3 4)(引發ArgumentError)

gem install net-ssh 

gem install rdoc 

gem install zookeeper 

Ruby Zookeeper client installed successfully (ver - 1.4.4) 

但是,當我執行示例Ruby腳本來檢查節點存在並在zookeeper上創建節點:

require 'rubygems' 
require 'zookeeper' 

z = Zookeeper.new("localhost:2181") 
if !z.exists("/app", :watch => true) 
     z.create("/app","app root node",:mode => :ephemeral) 
end 
z.get_children(:path => "/") 

......它拋出以下錯誤。

zookeeper-1.4.4/lib/zookeeper/continuation.rb:172:in `zkrb_exists': wrong number of arguments (3 for 4) (ArgumentError) 
    from .rvm/gems/ruby-2.0.0-p195/gems/zookeeper-1.4.4/lib/zookeeper/continuation.rb:172:in `submit' 
    from .rvm/gems/ruby-2.0.0-p195/gems/zookeeper-1.4.4/ext/c_zookeeper.rb:303:in `submit_pending_calls' 
    from .rvm/gems/ruby-2.0.0-p195/gems/zookeeper-1.4.4/ext/c_zookeeper.rb:261:in `event_thread_body' 

任何人都可以請幫我解決這個問題嗎?

+0

你能分享一些代碼嗎? – draxxxeus

+0

需要 'RubyGems的' 需要 '飼養員' Z = Zookeeper.new( 「本地主機:2181」)! 如果z.exists( 「/應用」:手錶=>真) z.create(「/應用程序「:」app root node「,:mode =>:ephemeral) end z.get_children(:path =>」/「) –

回答

0

要求 「RubyGems的」

要求 「ZK」

ZK = ZK.new

ZK.open( '本地主機:2181')做| ZK | 如果!zk.exists?( '/根')

zk.create("/root", :data => "foo") 

使用ZK而不是飼養員寶石開始。它現在工作正常,但不確定上述參數錯誤的確切解決方案。

0

使用ZK,它更友好,記錄更充分。 Zookeeper gem的目的是作爲低級驅動程序層,ZK旨在用於應用程序編寫。