workers created when request comes in?

Eric Wong normalperson at yhbt.net
Tue Dec 15 21:37:01 EST 2009


Joseph McDonald <superjoe at gmail.com> wrote:
> Is it possible to have unicorn spawn a new worker when a request comes
> in, and only allow that child to service the one request?
> 
> In development mode it would be nice if I could just save my changes
> and know that I will see them right away without having to HUP the
> server.

Hi Joseph,

Yes, just send SIGQUIT to yourself anywhere inside the application
dispatch and it'll defer the exit until your application is done
processing.

You should be able to just make it middleware like this:

  # name inspired by the "shotgun" gem
  class Unicorn::Shotgun < Struct.new(:app)
    def call(env)
      Process.kill(:QUIT, 0)
      app.call(env)
    end
  end

-- 
Eric Wong


More information about the mongrel-unicorn mailing list