From 96cc1bae725bb8d74abfbf9b88b73e9d2293167e Mon Sep 17 00:00:00 2001 From: Nathan Lasseter Date: Mon, 18 Mar 2013 22:20:34 +0000 Subject: First Commit --- Client/client.rb | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Client/client.rb (limited to 'Client') diff --git a/Client/client.rb b/Client/client.rb new file mode 100644 index 0000000..4d499a2 --- /dev/null +++ b/Client/client.rb @@ -0,0 +1,49 @@ +require 'rubygems' +require 'mongo' + +include Mongo + +THIS = "servera" +settings = nil +slock = false + +threads = {} + +client = MongoClient.new('home', 27017) +cdb = client['configs'] +rdb = client['results'] +ccoll = cdb[THIS] +rcoll = rdb[THIS] + +ccoll.find.each do |doc| + settings = doc +end + +threads["pingthread"] = Thread.new do loop do + unless slock + slock = true + results = {"timestamp" => Time.now.to_i} + settings["neighbours"].each do |neighbour| + pingtime = %x[ping -c1 #{neighbour}][/time=(.*?) ms/, 1] + results.merge!({neighbour => pingtime}) + end + rcoll.insert(results) + slock = false + sleep(settings["pinginterval"]) + end +end end + +threads["threadupdater"] = Thread.new do loop do + unless slock + slock = true + ccoll.find.each do |doc| + settings = doc + end + slock = false + sleep(settings["configttl"]) + end +end end + +threads.each do |name, thr| + thr.join +end -- cgit v1.2.1