A RubyChildInitHandler class which loads one or more dispatchers when a child server starts. This can eliminate the startup lag for the first request each child handles. See the docs for dispatcher.rb for an example of how to use this.
Create a loader that will create dispatchers from the given hostsfile, which is a YAML hash that maps dispatcher names to a configfile path.
    # File /Users/ged/source/ruby/Arrow/lib/arrow.rb, line 69
69:         def initialize( hostsfile )
70:             @hostsfile = hostsfile
71:         end
	          		Load the dispatchers according to the registered hosts file.
    # File /Users/ged/source/ruby/Arrow/lib/arrow.rb, line 75
75:         def child_init( req )
76:             req.server.log_info( "Loading dispatcher configs from " + @hostsfile + "." )
77:             Arrow::Dispatcher.create_from_hosts_file( @hostsfile )
78: 
79:             return Apache::OK
80:         rescue ::Exception => err
81:             errmsg = "%s failed to load dispatchers (%s): %s: %s" % [
82:                 self.class.name,
83:                 err.class.name,
84:                 err.message,
85:                 err.backtrace.join("\n  ")
86:             ]
87: 
88:             logfile = Pathname.new( Dir.tmpdir ) + 'arrow-dispatcher-failure.log'
89:             logfile.open( IO::WRONLY|IO::TRUNC|IO::CREAT ) do |ofh|
90:                 ofh.puts( errmsg )
91:                 ofh.flush
92:             end
93: 
94:             Apache.request.server.log_crit( errmsg )
95:             raise
96:         end
	          		--- SEC00188
--- ""
--- 
- methods: 
  - visibility: public
    aref: M000350
    name: new
    sourcecode: "    <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow.rb, line 69</span>\n\
      69:         <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">initialize</span>( <span class=\"ruby-identifier\">hostsfile</span> )\n\
      70:             <span class=\"ruby-ivar\">@hostsfile</span> = <span class=\"ruby-identifier\">hostsfile</span>\n\
      71:         <span class=\"ruby-keyword kw\">end</span>"
    m_desc: |-
      <p>
      Create a loader that will create dispatchers from the given
      <tt>hostsfile</tt>, which is a YAML hash that maps dispatcher names to a
      configfile path.
      </p>
    params: ( hostsfile )
  category: Class
  type: Public
- methods: 
  - visibility: public
    aref: M000351
    name: child_init
    sourcecode: "    <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow.rb, line 75</span>\n\
      75:         <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">child_init</span>( <span class=\"ruby-identifier\">req</span> )\n\
      76:             <span class=\"ruby-identifier\">req</span>.<span class=\"ruby-identifier\">server</span>.<span class=\"ruby-identifier\">log_info</span>( <span class=\"ruby-value str\">"Loading dispatcher configs from "</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-ivar\">@hostsfile</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-value str\">"."</span> )\n\
      77:             <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Dispatcher</span>.<span class=\"ruby-identifier\">create_from_hosts_file</span>( <span class=\"ruby-ivar\">@hostsfile</span> )\n\
      78: \n\
      79:             <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-constant\">Apache</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">OK</span>\n\
      80:         <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Exception</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\
      81:             <span class=\"ruby-identifier\">errmsg</span> = <span class=\"ruby-value str\">"%s failed to load dispatchers (%s): %s: %s"</span> <span class=\"ruby-operator\">%</span> [\n\
      82:                 <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">name</span>,\n\
      83:                 <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">name</span>,\n\
      84:                 <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>,\n\
      85:                 <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">join</span>(<span class=\"ruby-value str\">"\\n  "</span>)\n\
      86:             ]\n\
      87: \n\
      88:             <span class=\"ruby-identifier\">logfile</span> = <span class=\"ruby-constant\">Pathname</span>.<span class=\"ruby-identifier\">new</span>( <span class=\"ruby-constant\">Dir</span>.<span class=\"ruby-identifier\">tmpdir</span> ) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value str\">'arrow-dispatcher-failure.log'</span>\n\
      89:             <span class=\"ruby-identifier\">logfile</span>.<span class=\"ruby-identifier\">open</span>( <span class=\"ruby-constant\">IO</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">WRONLY</span><span class=\"ruby-operator\">|</span><span class=\"ruby-constant\">IO</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">TRUNC</span><span class=\"ruby-operator\">|</span><span class=\"ruby-constant\">IO</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">CREAT</span> ) <span class=\"ruby-keyword kw\">do</span> <span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">ofh</span><span class=\"ruby-operator\">|</span>\n\
      90:                 <span class=\"ruby-identifier\">ofh</span>.<span class=\"ruby-identifier\">puts</span>( <span class=\"ruby-identifier\">errmsg</span> )\n\
      91:                 <span class=\"ruby-identifier\">ofh</span>.<span class=\"ruby-identifier\">flush</span>\n\
      92:             <span class=\"ruby-keyword kw\">end</span>\n\
      93: \n\
      94:             <span class=\"ruby-constant\">Apache</span>.<span class=\"ruby-identifier\">request</span>.<span class=\"ruby-identifier\">server</span>.<span class=\"ruby-identifier\">log_crit</span>( <span class=\"ruby-identifier\">errmsg</span> )\n\
      95:             <span class=\"ruby-identifier\">raise</span>\n\
      96:         <span class=\"ruby-keyword kw\">end</span>"
    m_desc: |-
      <p>
      Load the dispatchers according to the registered hosts file.
      </p>
    params: ( req )
  category: Instance
  type: Public
		---
Generated with the Darkfish Rdoc Generator.