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
