On Sunday, September 21, 2014 4:05:02 PM UTC+2, pn wrote:
>
> Did you test in a production environment (example behind an apache/other
> server calling web2py via wsgi as described in the deployment recipes
> chapter) or just using the built-in web2py server on your dev machine?
>
> The difference is that apache will certainly be able to handle multiple
> simultaneous requests, even long running ones until it runs out of
> allocated resources. Not sure if the built-in rocket server can do that or
> if it only handles one request at a time.
>
no, no, no, no. Never spawn external processes from a web request for the
following reasons:
- every serious webserver has something called "timeout" that reaps
processes and threads that are stale for a while. Usually the limit is 60
seconds. Be aware that every "good-behaving" request should return in less
than half a second.
- managing external processes within a web app is a PITA
@douglas: what you're experiencing comes from the fact that the default
session storage is serial, not parallel. that's because if you do something
like
def testpage():
session.somevar += 1
....
return dict()
there could be race conditions among several "parallel" requests. The way
to turn this behaviour "off" is to avoid using session (make sure you don't
have forms in the page, because they require a sesson to be there) and use
session.forget(). You can read about it on the book.
Anyway, if you need *n* parallel jobs to run, the best thing is to use the
Scheduler with *n* active processes, and leave the webserver just queuing
and reading the results (the simplest thing would be to poll periodically
for results)
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.