From 3c343cca6b736e43c6145ebdf60aed2cd61b912c Mon Sep 17 00:00:00 2001 From: zedshaw Date: Fri, 10 Feb 2006 01:06:55 +0000 Subject: Created rails runner, started making it daemon capable. git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@23 19e92222-5c0b-0410-8929-a290d50e31e9 --- examples/mongrel_rails.rb | 85 ----------------------------------------------- 1 file changed, 85 deletions(-) delete mode 100644 examples/mongrel_rails.rb (limited to 'examples') diff --git a/examples/mongrel_rails.rb b/examples/mongrel_rails.rb deleted file mode 100644 index b6bce98..0000000 --- a/examples/mongrel_rails.rb +++ /dev/null @@ -1,85 +0,0 @@ -require 'config/environment' -require 'mongrel' -require 'cgi' - -begin - require 'daemons/deamonize' - HAVE_DAEMONS=true -rescue - HAVE_DAEMONS=false -end - - -class CGIFixed < ::CGI - public :env_table - - def initialize(params, data, out, *args) - @env_table = params - @args = *args - @input = StringIO.new(data) - @out = out - super(*args) - end - - def args - @args - end - - def env_table - @env_table - end - - def stdinput - @input - end - - def stdoutput - @out - end -end - - -class RailsHandler < Mongrel::HttpHandler - def initialize - @guard = Mutex.new - end - - def process(request, response) - # not static, need to talk to rails - return if response.socket.closed? - - cgi = CGIFixed.new(request.params, request.body, response.socket) - begin - - @guard.synchronize do - # Rails is not thread safe so must be run entirely within synchronize - Dispatcher.dispatch(cgi, ActionController::CgiRequest::DEFAULT_SESSION_OPTIONS, response.body) - end - - response.send_status - response.send_body - rescue IOError - @log.error("received IOError #$! when handling client. Your web server doesn't like me.") - rescue Object => rails_error - @log.error("calling Dispatcher.dispatch", rails_error) - end - end -end - -if ARGV.length != 2 - STDERR.puts "usage: mongrel_rails " - exit(1) -end - -h = Mongrel::HttpServer.new(ARGV[0], ARGV[1]) -h.register("/", Mongrel::DirHandler.new(ARGV[2])) -h.register("/app", RailsHandler.new) -h.run - -h.acceptor.join -cwd = Dir.pwd - -Deamonize.daemonize(log_file=File.join(cwd,"log","mongrel.log") -open("#{cwd}/log/mongrel-#{Process.pid}.pid","w") {|f| f.write(Process.pid) } - -g -- cgit v1.2.3-24-ge0c7