I had problems with requests taking too much memory too. I had to move all 
memory heavy logic into a pool of processes (poolboy), so there could be 
only so much of such tasks at any give time. When user sends request to 
create a report, controller tries to checkout a process from pool, and if 
it gets a timeout it just returns a message to the user that he has to wait 
for a while.
Another way to throttle is to make such tasks asynchronously. You may store 
requests for reports in db and return from immediately. There should be a 
process(es) which perform these tasks in the background and return result 
to the user via something like ajax or comet. You may even cancel these 
tasks if, for example, client haven't send a ping request with task id in a 
given interval of time.

четверг, 16 января 2014 г., 18:10:03 UTC+4 пользователь [email protected] 
написал:
>
> Hello,
>
> When e.g. a GET request is canceled from the client's end, CB still 
> performs the request completely. This is a big problem to us since we do 
> some heavy server side report generation. If a user reloads the requests 
> multiple times, chances are that OOM will occur, and we all know that OOM 
> is Erlang's Achilles' heel. I just tested this in v0.8.9.
>
> It doesn't seem as this issue have been raised before but I know the 
> problem has existed from at least 0.8.1. Any plans of addressing it? Gut 
> feeling about how hard this will be to fix?
>
> Best regards,
> Martin Torhage
>

-- 
You received this message because you are subscribed to the Google Groups 
"ChicagoBoss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
Visit this group at http://groups.google.com/group/chicagoboss.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/chicagoboss/e44fa344-1f63-46fc-948c-10be99758bbb%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to