【问题标题】:Django server doesn't seem to be able to respond while requestingDjango 服务器在请求时似乎无法响应
【发布时间】:2017-01-22 00:00:30
【问题描述】:

我正在尝试构建一个类似开放式身份验证的系统,用户可以在其中通过另一个应用登录一个应用。

在此过程中,我的“身份验证”应用会秘密向“客户端”应用发送令牌。然后客户端应用程序调用身份验证应用程序询问用户的详细信息,以检查他们没有改变。最后,身份验证应用以用户详细信息进行响应,用户被重定向到客户端应用并使用令牌作为密码登录。

这一切似乎在我的本地机器上运行良好。但是,当推送到我的公共服务器时,出现问题。

身份验证应用似乎无法处理被要求提供用户详细信息的问题,而它仍在等待来自客户端应用的回复,该回复应确认已设置令牌。

基本上,客户端应用程序会等待身份验证应用程序回复其对详细信息的请求,而它从不这样做。因此,客户端应用程序永远不会回复身份验证应用程序已成功设置令牌。所以请求永远不会成功。这是粗略的时间表

AUTH   : Posts token to client, waits for 200 response
CLIENT : Receive token, asks for user details, waits for 200 response
AUTH   : Still waiting for its 200 response, so doesn't answer client request. After a while, ends in a 504 gateway timeout error

我应该更改我的代码以便异步进行一些调用吗?还是我发现问题有误?

【问题讨论】:

  • 这可能是因为您的 django 的 Web 服务器运行在单个工作人员(单个进程)中。您使用的是什么网络服务器?阿帕奇? Nginx?你有办法检查并可能更改 Django 的工人数量吗?

标签: django post pythonanywhere


【解决方案1】:

如果您只有一个工作人员,那么工作人员正忙于处理外部请求,因此内部请求永远不会得到响应。

【讨论】:

  • 好像就是这样!我重写了代码以避免等待响应,现在一切正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-20
  • 2018-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多