Javascript 加载资源失败:服务器响应状态为504(网关超时)

Javascript 加载资源失败:服务器响应状态为504(网关超时),javascript,ajax,django,http-status-code-504,Javascript,Ajax,Django,Http Status Code 504,我正在使用django-python和javascript开发一个项目。当我从视图调用长时间运行的流程(耗时)大约超过20分钟时,流程将成功启动。我在ajax中使用loader通知用户进程正在运行。进程完成后,加载程序将停止并更改为完成状态 但问题是,每次进程启动14.59分钟后,装载机都会停止并将状态更改为“已完成”。但在后台运行的进程尚未完成。页面在此时间之后崩溃。过程完成后,我将结果绑定到网页中的标记下。在该标记中出现错误504(网关超时)。在web控制台日志中,加载资源失败:服务器响应状

我正在使用django-python和javascript开发一个项目。当我从视图调用长时间运行的流程(耗时)大约超过20分钟时,流程将成功启动。我在ajax中使用loader通知用户进程正在运行。进程完成后,加载程序将停止并更改为完成状态

但问题是,每次进程启动14.59分钟后,装载机都会停止并将状态更改为“已完成”。但在后台运行的进程尚未完成。页面在此时间之后崩溃。过程完成后,我将结果绑定到网页中的标记下。在该标记中出现错误504(网关超时)。在web控制台日志中,加载资源失败:服务器响应状态为504(网关超时),显示上述错误。如果有人知道,请帮我解决这个问题

django是否在该时间之后关闭连接?如果是这样的话,可以在django设置(settings.py)中提到超时。我尝试在ajax调用中提供超时,但同样的问题再次出现。我怀疑的是django开发服务器。django开发服务器是否超时。但是当我搜索这个问题时,我发现在nginx服务器中出现了相同类型的问题。django依赖nginx还是使用nginx


我试图提供有关我的问题的所有信息,如果有任何进一步的澄清,请让我知道。

服务器总是在特定时间后关闭连接,可以通过更改其配置来修改,但这不是一个好方法。 我建议您尝试通过以下方式减少脚本所花费的时间:

  • 优化代码
  • 通过缓存经常使用的数据
  • 使用后端服务处理您的数据,并将其存储在临时存储中,例如可以快速访问的memcache或redis
您还应该处理ajax调用的超时:

$.ajax({
    ...
    timeout: 1000,
    error: function(jqXHR, textStatus, errorThrown) {
        if(textStatus==="timeout") {
           //do something on timeout / show appropriate message.
        } 
    }
});​
用于调整性能和优化编码技术从而缩短时间的参考资料:

您使用的是什么web服务器<代码>nginx?超时可以在您的服务器配置中配置。我建议使用这里提到的其他技术。我没有使用任何web服务器,我使用默认的django服务器,即django开发服务器。我还没有部署。如果你有长时间运行的后台任务,你应该使用一些异步任务队列在带外运行它们-我想到芹菜。它不仅可以解决此类问题,而且还可以避免web服务器过载,并且在需要时更容易扩展,因为运行芹菜工人时,有许多不同的服务是您需要的。我不想将此过程作为后台任务运行,用户必须等待长时间运行的进程完成。我已经使用了错误函数来处理它,但它没有进入错误函数。