El Jueves, 7 de Enero de 2010, Eric Wong escribió: > Iñaki Baz Castillo <[email protected]> wrote: > > Hi, I'm thinking in using a worker (i.e: "worker.nr == 0") to accomplish > > a diferent task than binding in the Unicorn socket. > > > > It would behave as a different process which binds in a different socket > > as daemon, so the other workers would notify it after processing data. > > > > Of course I could have a separate process but why not using an Unicorn > > worker for this? in this way it's automatically reaped by master process > > if it crashes and I don't need to manage two different services. > > > > Is is suitable? The main question is: how to tell a worker not to bind in > > the Unicorn configured socket(s)? is it possible? > > Hi Iñaki, > > You could _try_ something like: > > after_fork do |server, worker| > if worker.nr == 0 > # new app > server.app = Rack::Builder.new { ... } > > # clear the local listener set > server.listeners = [] > > # new listeners > server.listen another_socket, socket_options > end > end > > I make no guarantees that it'll work, though, and I'm hesitant > to support/encourage it even if it does.
It seems interesting. Just a doubt: would it work with "preload_app true"? I use preload_app since in case he config.ru is wrong then it raises in the master (instead of raising each worker and being reaped again and again). Thanks, I'll try it. -- Iñaki Baz Castillo <[email protected]> _______________________________________________ Unicorn mailing list - [email protected] http://rubyforge.org/mailman/listinfo/mongrel-unicorn Do not quote signatures (like this one) or top post when replying
