Using a worker for a different purpose

Eric Wong normalperson at
Thu Jan 7 15:26:32 EST 2010

Iñaki Baz Castillo <ibc at> wrote:
> Hi, I'm thinking in using a worker (i.e: " == 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 == 0
      # new app = { ... }

      # clear the local listener set
      server.listeners = []

      # new listeners
      server.listen another_socket, socket_options

I make no guarantees that it'll work, though, and I'm hesitant
to support/encourage it even if it does.

Eric Wong

More information about the mongrel-unicorn mailing list