On Fri, Sep 13, 2013 at 4:11 PM, Brian McQueen <[email protected]>wrote:

> I've got handlers running slow long running backend jobs.  They start up
> and return a response and close the connection, and then they waits for
> their slow jobs to finish before they goes back to conn.recv.
>
> While a slow job is running other handlers are connected to the queues and
> receiving.  I'm seeing that the distribution of the requests still seems to
> round robin into the busy handler which is not even at conn.recv.  The
> other two handlers are sitting there waiting.  They are fast and not busy
> and waiting, and they will each take a request, and then mongrel2 stops
> like its trying to direct the next request in a round robin fashion to the
> busy handler, which is not even at conn.recv, but instead is busy doing a
> big backend job.
>
> What's going on here?  How should I debug this?
>
> I need the requests to go the the ready handlers and not return to the
> slow handler until its back at conn.recv.
>

For better or worse, this is how ZeroMQ does routing. If you need
alternative behavior, you could make an adapter worker.

Justin

Reply via email to