I have a rails application that occasionally needs to do very slow network calls (that might not ever return) based on a web user hitting a route. If the call is slower than normal (or doesn't return), Rails seems to block, not allowing ANYTHING else to happen (I can't open up another browser and hit a different route, I can't use a different machine to hit a different route, nothing).
I tried using Phusion Passenger to handle multi-thread (assuming it was a mongrel server issue), and while Apache CAN handle a test controller that goes into an infinite loop (while Mongrel can't), it seems like every so often (when the network call doesn't come back), it still blocks. I can't really replicate this, so it's not all that testable:
Is RAILS itself blocking, or is Apache not the correct server? If it's rails, is there ANYTHING I can do to make it open itself up to other users while blocked?