monax
monax

Reputation: 209

long time running python script

I have application of following parts:

client->nginx->uwsgi(python)

and some python scripts can be running long time (2-6 minutes). After execution of script I should give to client content, but connection break with error "gateway timeout 504". What can I use for my case to avoid this error?

Upvotes: 0

Views: 858

Answers (3)

tzot
tzot

Reputation: 96001

This heavily depends on your server setup (i.e. how easy it is to push data back to the client), but is it possible while running your lengthy application to periodically send some “null” content (e.g plain newlines assuming your output is html) so that the browser thinks this is just a slow connection and not a stalled one?

Upvotes: 0

Aaron Watters
Aaron Watters

Reputation: 2846

I once set up a system where the "main page" contained an Iframe which showed the output of the long running program as text/plain. I think the the handler for the the Iframe content was a Python CGI script which emitted all headers and then the program output line by line under an Apache server.

I don't know whether this would work under your configuration.

Upvotes: 0

Corbin
Corbin

Reputation: 33457

So is your goal to reduce the run time of the scripts, or to not have them time out? Browsers are going to give up on a 6 minute request no matter what you try.

Perhaps try doing the work on the server, and then polling for progress with AJAX requests?

Or, if possible, try optimizing the scripts. For example, if you have some horribly slow SQL stuff going on, try cleaning that up.

Otherwise, without more information, a more specific answer is hard to give.

Upvotes: 2

Related Questions