【发布时间】:2017-05-22 18:19:26
【问题描述】:
我正在使用connections['report'].cursor() 运行一个最多需要 3 分钟才能完成 django 的查询
当我向执行该查询的视图发出请求时,Nginx 会给我一个超时时间(在视图中显示为“502 Bad Gateway”)。
我应该选择什么方法来克服这个问题?我应该增加超时设置还是如何使这个异步?
【问题讨论】:
标签: django nginx timeout gunicorn
我正在使用connections['report'].cursor() 运行一个最多需要 3 分钟才能完成 django 的查询
当我向执行该查询的视图发出请求时,Nginx 会给我一个超时时间(在视图中显示为“502 Bad Gateway”)。
我应该选择什么方法来克服这个问题?我应该增加超时设置还是如何使这个异步?
【问题讨论】:
标签: django nginx timeout gunicorn
第一种方法(最简单):您可以增加超时设置。这样,您的用户将不得不等待很长时间。用户体验不好。
第二种方法(中等难度):如果您的用户不必等待该请求(例如发送电子邮件),您可以将该任务委托给后台工作人员。在 Django 社区中,这通常由 celery
完成第三种方法(最困难 - 最佳体验):使用django-channels 和web sockets。如果您不熟悉这些技术,这将花费大量时间。
根据您的情况选择。希望对您有所帮助!
【讨论】: