mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
import drb/sample
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0562a84558
commit
30ff0b6aeb
44 changed files with 1966 additions and 0 deletions
39
sample/drb/dlogd.rb
Normal file
39
sample/drb/dlogd.rb
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
=begin
|
||||
distributed Ruby --- Log server
|
||||
Copyright (c) 1999-2000 Masatoshi SEKI
|
||||
=end
|
||||
|
||||
require 'drb/drb'
|
||||
require 'thread'
|
||||
|
||||
class Logger
|
||||
def initialize(fname)
|
||||
@fname = fname.to_s
|
||||
@fp = File.open(@fname, "a+")
|
||||
@queue = Queue.new
|
||||
@th = Thread.new { self.flush }
|
||||
end
|
||||
|
||||
def log(str)
|
||||
@queue.push("#{Time.now}\t" + str.to_s)
|
||||
end
|
||||
|
||||
def flush
|
||||
begin
|
||||
while(1)
|
||||
@fp.puts(@queue.pop)
|
||||
@fp.flush
|
||||
end
|
||||
ensure
|
||||
@fp.close
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if __FILE__ == $0
|
||||
here = ARGV.shift
|
||||
DRb.start_service(here, Logger.new('/usr/tmp/dlogd.log'))
|
||||
puts DRb.uri
|
||||
DRb.thread.join
|
||||
end
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue