[asio-users] Async HTTP and requests requiring long processing time
Brought to you by:
chris_kohlhoff
From: Bruno C. <bco...@rc...> - 2013-06-14 15:55:35
|
Hi, I have an HTTP server based on HTTP Server 3. We run it on Boost 1.42 on Debian 6. The server works fine for years. Recently we added a new feature that requires a long processing time like 10 minutes. When even a single client make this request, our server starts slowly to no more accept incoming requests. On the client side, we stay connected indefinitely. With netstat I can see a lot of sockets associated to my server process in the CLOSE_WAIT state. Under normal operation, without this long processing it does not happens. It is similar to the previous post by George van Venrooij. In my case, I ended up testing with simple wget so I am sure the problem is not on the client side. Beside this long request, the load is very small like 10 clients at 1 request per second. Does anybody experience a similar behavior? Is doing long processing supported or is there a way to make it works. BTW, I changed the code to run the long processing in a background thread and return immediately to the client and the problem is gone. Bruno. |