长时间运行python脚本

时间:2012-01-31 06:06:50

标签: python nginx wsgi

我有以下部分的应用:

client->nginx->uwsgi(python)

并且一些python脚本可以运行很长时间(2-6分钟)。执行脚本后,我应该给客户端内容,但连接中断错误“网关超时504”。我可以用什么来避免这个错误?

3 个答案:

答案 0 :(得分:2)

您的目标是缩短脚本的运行时间,还是不让它们超时?无论你尝试什么,浏览器都会放弃6分钟的请求。

也许尝试在服务器上进行工作,然后使用AJAX请求轮询进度?

或者,如果可能,请尝试优化脚本。例如,如果你有一些非常慢的SQL内容,请尝试清理它。

否则,如果没有更多信息,很难给出更具体的答案。

答案 1 :(得分:0)

我曾经建立了一个系统,其中“主页面”包含一个Iframe,它将长时间运行的程序的输出显示为text / plain。我认为Iframe内容的处理程序是一个Python CGI脚本,它在Apache服务器下逐行发出所有头文件然后输出程序。

我不知道这是否适用于您的配置。

答案 2 :(得分:0)

这在很大程度上取决于您的服务器设置(即将数据推送回客户端是多么容易),但是在运行冗长的应用程序时可以定期发送一些“空”内容(例如,假设输出为html)这样浏览器认为这只是一个缓慢的连接,而不是一个停滞不前的连接?