Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flask 504网关超时_Flask_Flask Socketio - Fatal编程技术网

Flask 504网关超时

Flask 504网关超时,flask,flask-socketio,Flask,Flask Socketio,我在一台flask socketio服务器上工作,该服务器处于只返回504s(网关超时)的状态。我们正在服务器前面使用AWS ELB。我想知道是否有人会介意就如何调试这个问题给出一些提示 其他症状: 此问题不会持续出现,但一旦开始出现,则只会从请求中接收到504s。重新启动流程似乎可以解决问题 在服务器上运行netstat-nt时,我看到许多rec-q超过100的条目卡在CLOSE\u WAIT状态 当我在进程上运行strace时,我只看到select和clock\u gettime 在服务器

我在一台flask socketio服务器上工作,该服务器处于只返回
504
s(网关超时)的状态。我们正在服务器前面使用AWS ELB。我想知道是否有人会介意就如何调试这个问题给出一些提示

其他症状:

  • 此问题不会持续出现,但一旦开始出现,则只会从请求中接收到
    504
    s。重新启动流程似乎可以解决问题
  • 在服务器上运行
    netstat-nt
    时,我看到许多rec-q超过100的条目卡在
    CLOSE\u WAIT
    状态
  • 当我在进程上运行
    strace
    时,我只看到
    select
    clock\u gettime
  • 在服务器上运行
    tcpdump
    时,我可以看到进入服务器的有效请求
  • AWS健康检查正在顺利恢复
编辑: 我还要补充两件事:

  • flask socketio的服务器用于生产(不是gunicorn或uWSGI)
  • Python的
    daemonize
    函数用于对应用程序进行后台监控

切换到gunicorn作为wsgi服务器似乎解决了这个问题。这可能是flask socketio wsgi服务器的一个问题。

您的服务器是否有可能阻塞?我假设您使用的是异步框架?在这种情况下,阻塞调用将阻塞整个服务器。这是很有可能的,尽管我不确定如何进行调试,因为问题似乎只是随机出现的,我不确定是什么触发了它。对于异步框架,使用eventlet。flask socketio服务器用于wsgi。