我一直在思索一个问题,在做自动化测试过程,需要多台机器共同协助工作,我们如何知道哪些机器是空闲的,那些机器是繁忙的。如何知道哪些机器出现故障,需要重新发布任务呢,昨晚我看了一篇分布式编程的方法,深受感触!以下是我用ruby写的一个小程序。来实现一个分布式调用,就是一个客户端调用服务器端的函数,然后客户端向server端报信息
分布式server程序:
require 'drb/drb'
class HelloDRServer
def execute(message)#需要发布的方法
File.open("log.log", "a") do |f|
f.write("#{Time.now}: client: #{message}")
end
end
end
SerObj=HelloDRServer.new
DRb.start_service('druby://localhost:8888',SerObj)
DRb.thread.join
客户端程序
require 'drb'
obj = DRbObject.new(nil, 'druby://localhost:8888')
p obj.execute("testing")
发现ruby真是很神奇,几句话就搞定了