How many uWSGI worker processes/threads? Is it possible you've got enough 
simultaneous long-running requests that all the available processes/threads 
are occupied at the same time?

Anthony

On Sunday, December 17, 2017 at 10:47:04 AM UTC-5, Lisandro wrote:
>
> Sorry, I forgot to mention.
>
> I'm using nginx + uwsgi (cheaper busyness algorithm)
> I use redis for cache and postgresql for database.
>
>
>
> El domingo, 17 de diciembre de 2017, 12:07:10 (UTC-3), Anthony escribió:
>>
>> How is web2py deployed?
>>
>> On Sunday, December 17, 2017 at 8:41:50 AM UTC-5, Lisandro wrote:
>>>
>>> Hello everyone. I've read the docs [1] and also read several posts in 
>>> this forum about this problem, however I can't figure out why it's still 
>>> happening in my case. I was hoping you can help me.
>>>
>>> In my application I have a simple page that makes an ajax async call to 
>>> web2py in order to get some data. 
>>> The controller/function that process the call takes a few seconds to 
>>> complete (around 6-7 seconds).
>>> During that time, if the user clics on a link in order to navigate to 
>>> another page of the application, it doesn't respond. The whole application 
>>> freezes until the ajax call completes.
>>>
>>> In the documentation I've read about this, and this is the expected 
>>> behaviour, because of the session file. So what I did is to put 
>>> session.forget(response) at the top of the controller/function that process 
>>> the ajax call. But this doesn't make any difference, the application still 
>>> freezes until the ajax call is completed. I've also tried session.forget() 
>>> and session._unlock(response) with no success.
>>>
>>>
>>> This is the script that makes the ajax call:
>>>
>>> <script type="text/javascript">
>>>     $j = jQuery.noConflict();
>>>     $j(document).ready(function() {
>>>        $j.ajax({
>>>           type: "GET",
>>>           async: true,
>>>           url: "{{=URL('default', '_dashboard')}}",
>>>           success: function(data) { $j(".dashboard").html(data) }
>>>        });
>>>     });
>>> </script>
>>>
>>>
>>>
>>> And this is the controller/function that process the call:
>>>
>>> @auth.requires(auth.is_logged_in() and auth.user.plantel)
>>> def _dashboard():
>>>     def get_info_dashboard():
>>>         from gluon.contrib.simplejsonrpc import ServerProxy
>>>         webservice = ServerProxy(CONFIG.url_webservice_central)
>>>         return webservice.get_info_dashboard({'sitio': CONFIG.cliente})
>>>
>>>     session.forget(response)
>>>     info_dashboard = None
>>>     try:
>>>         r = cache.redis('info-dashboard', lambda: get_info_dashboard(), 
>>> time_expire=300)
>>>         if r.get('success'):
>>>             info_dashboard = r.get('info_dashboard')
>>>     except:
>>>         pass
>>>     return dict(info_dashboard=info_dashboard)
>>>
>>>
>>>
>>> What could be the issue?
>>>
>>> Thank you very much in advance.
>>> Regards,
>>> Lisandro.
>>>
>>>
>>> [1] http://web2py.com/books/default/chapter/29/04/the-core#session
>>>
>>

-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to