If I'm understanding you correctly, you want it to flush periodically and not just one big dump at the end, right?
I don't have access to the code base of the project where I had to deal with this same issue, but I remember that it had to do with buffering happening in nginx. You can try setting the "X-Accel-Buffering" http header to temporarily turn buffering on/off and test if that fixes your issue. You can see all of the uwsgi buffer settings here: http://nginx.org/en/docs/http/ngx_http_uwsgi_module.html On 3 March 2016 at 11:15, Chan Guan Hao <[email protected]> wrote: > I'm not sure how I can explain this better. But > http://128.199.139.161/api/search/?keyword=headphones&page=1 shows what > I'm saying. > > This URL sends JSON over and I have verified that the WSGI function runs > without exceptions and returns the complete payload. But somehow it still > continuously loads, without sending over the full payload. > > However, when I am running it myself manually, and when I stop the uwsgi > instance with CTRL-C, the output gets flushed out to the browser. So I have > a gut feeling that it's uwsgi that's not closing a connection or something. > > This is the uwsgi log: > `[pid: 4020|app: 0|req: 1/3] 110.159.164.57 () {44 vars in 838 bytes} [Thu > Mar 3 10:53:08 2016] GET /api/search/?keyword=headphones&page=1 => > generated 19103 bytes in 4244 msecs (HTTP/1.1 200) 2 headers in 74 bytes (1 > switches on core 0)` > > This is the nginx log: > `2016/03/03 10:45:29 [error] 907#0: *321 upstream timed out (110: > Connection timed out) while reading upstream, client: 110.159.164.57, > server: 128.199.104.232, request: "GET > /api/search/?keyword=headphones&page=1 HTTP/1.1", upstream: "uwsgi:// > 127.0.0.1:8080", host: "128.199.139.161"` > > After seeing this in the nginx log, I was sure that nginx was not the > culprit in the infinite loading issue because it was expecting uwsgi to > close the connection. > > My uwsgi configuration: > > ``` > [uwsgi] > module = app > callable = app > master = true > processes = 5 > vacuum = true > socket = 127.0.0.1:8080 > die-on-term = true > log-to = /root/cheapchirp/logs/server.log > pyhome = /root/cheapchirp/env > ``` > > Extra details: Flask, Python 2.7.6 > > _______________________________________________ > uWSGI mailing list > [email protected] > http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi > >
_______________________________________________ uWSGI mailing list [email protected] http://lists.unbit.it/cgi-bin/mailman/listinfo/uwsgi
