Ruby库功能详解
1. dRuby库:分布式Ruby对象
dRuby允许Ruby对象通过网络连接进行分布式处理。尽管以客户端 - 服务器的形式表达,但一旦初始连接建立,协议实际上是对称的,双方都可以调用对方对象的方法。通常,远程调用传递和返回的对象是按值传递的;若对象包含DRbUndumped模块,则会按引用传递,这在实现回调时很有用。
1.1 服务器程序示例
require 'drb' require 'drb/observer' class Counter include DRb::DRbObservable def run 5.times do |count| changed notify_observers(count) end end end counter = Counter.new DRb.start_service('druby://localhost:9001', counter) DRb.thread.join1.2 客户端程序示例
require 'drb' class Listener include DRbUndumped def update(value) puts value end end DRb.start_service counter = DRbObject.new(nil, "druby://localhost:9001") listener =