[#42851] Object#define_singleton_method がない?? — take_tk <ggb03124@...>

たけ(tk)です

14 messages 2006/10/06
[#42852] Re: Object#define_singleton_method がない?? — Yukihiro Matsumoto <matz@...> 2006/10/06

まつもと ゆきひろです

[#42853] Re: Object#define_singleton_method がない?? — take_tk <ggb03124@...> 2006/10/06

たけ(tk)です。

[#42870] system の実行タイミングのトラブル — "Hideo Konami" <konami@...>

小波です。

18 messages 2006/10/14
[#42874] Re: system の実行タイミングのトラブル — "Hideo Konami" <konami@...> 2006/10/14

小波です。

[#42876] Re: system の実行タイミングのトラブル — cuzic <cuzic@...> 2006/10/14

cuzic です。

[#42885] apt-listbugs: soap4r での悩み — Junichi Uekawa <dancer@...>

ruby-list のみなさま、

21 messages 2006/10/16
[#42891] Re: apt-listbugs: soap4r での悩み — "NAKAMURA, Hiroshi" <nakahiro@...> 2006/10/17

-----BEGIN PGP SIGNED MESSAGE-----

[#42892] Re: apt-listbugs: soap4r での悩み — Junichi Uekawa <dancer@...> 2006/10/17

こんにちは、

[#42896] Re: apt-listbugs: soap4r での悩み — "NAKAMURA, Hiroshi" <nakahiro@...> 2006/10/17

-----BEGIN PGP SIGNED MESSAGE-----

[#42929] Re: 括弧なしsuperで引数が引き継がれない — "U.Nakamura" <usa@...>

こんにちは、なかむら(う)です。

17 messages 2006/10/31
[#42930] Re: 括弧なしsuperで引数が引き継がれない — "U.Nakamura" <usa@...> 2006/10/31

こんにちは、なかむら(う)です。

[#42931] instant rails インストール! irbを起動するには? — "Uema Tsuyoshi" <mugenkai15@...> 2006/10/31

上間といいます。

[#42933] Re: instant rails インストール! irbを起動するには? — "きむらこういち" <hogemuta@...> 2006/10/31

木村です。

[#42937] Re: instant rails インストール! irbを起動するには? — "Uema Tsuyoshi" <mugenkai15@...> 2006/10/31

上間です。

[ruby-list:42886] [Q] large-size XML file, REXML, dRuby

From: NISHIMATSU Takeshi <t_nissie@...>
Date: 2006-10-16 23:30:11 UTC
List: ruby-list #42886
西松と申します。

foo.xmlという大きめのサイズ(3MB)のXMLファイルがあるとします。
REXMLを使ってfoo.xmlの中から希望の要素だけを取り出すプログラ
ムを作ろうとしています。しかし、大きなファイルサイズのせいか、
毎回毎回foo.xmlを読み込ませていては遅くなってしまうことがわか
りました。そこで、dRubyを使ってServerに1度だけfoo.xmlを読み
込ませ、Clientが要求を出して希望の要素だけを取り出すことにし
ました。ところが、こんどはSeverがファイルを読み込まないうちに
Clientが要求を出すとエラーになってしまうことがわかりました。

たぶん、forkなどを使ってファイルを読み込み後、子プロセスとし
てdRubyのServerを動かして、親プロセスは死ぬことにすればよいと
思うのですが、方法がいまいちわかりません。アドバイスなどをい
ただけたら幸いです。よろしくおねがいします。

ぼくは今回、XMLもdRubyも触るのが初めてです。dRubyや、そもそ
もRubyを使わなくてもできる。そのほうが速い。などの情報も教え
ていただけたらうれしいです。勝手を言ってごめんなさい。

=== xmlServer.rb ここから =========================================
#!/usr/bin/env ruby
##
require "drb"
require "rexml/document"

class XmlServer
  def initialize(filename)
    @doc = nil
    File.open(filename) {|fd|
      @doc = REXML::Document.new(fd)
    }
  end
  def elements(xpath)
    @doc.elements[xpath]
  end
end

aSeverObject = XmlServer.new(ARGV[0])
DRb.start_service('druby://localhost:9000', aSeverObject)
DRb.thread.join
=== xmlServer.rb ここまで =========================================

$ ./xmlServer.rb foo.xml & ruby -r drb -r rexml/document -e 'DRb.start_service(); obj =
DRbObject.new(nil, "druby://localhost:9000"); puts obj.elements("modeling")'
[6] 15200
/usr/local/lib/ruby/1.8/drb/drb.rb:736:in `open': druby://localhost:9000 - #<Errno::ECONNREFUSED:
Connection refused - connect(2)> (DRb::DRbConnError)
        from /usr/local/lib/ruby/1.8/drb/drb.rb:729:in `each'
        from /usr/local/lib/ruby/1.8/drb/drb.rb:729:in `open'
        from /usr/local/lib/ruby/1.8/drb/drb.rb:1189:in `initialize'
        from /usr/local/lib/ruby/1.8/drb/drb.rb:1169:in `new'
        from /usr/local/lib/ruby/1.8/drb/drb.rb:1169:in `open'
        from /usr/local/lib/ruby/1.8/drb/drb.rb:1085:in `method_missing'
        from /usr/local/lib/ruby/1.8/drb/drb.rb:1103:in `with_friend'
        from /usr/local/lib/ruby/1.8/drb/drb.rb:1084:in `method_missing'
        from -e:1
$ killall ruby
$
[6]+  終了しました            ./xmlServer.rb foo.xml
$ ./xmlServer.rb foo.xml & sleep 10 ; ruby -r drb -r rexml/document -e 'DRb.start_service(); obj =
DRbObject.new(nil, "druby://localhost:9000"); puts obj.elements("modeling")' 
→sleepを入れると期待どおりの動作
$ killall ruby
$  ruby --version
ruby 1.8.5 (2006-08-25) [i686-linux]

-- 
 love && peace && free_software
 西松タケシ




In This Thread

Prev Next