Flask在数据返回时间歇性挂起

时间:2018-06-08 19:21:29

标签: python apache flask mod-wsgi wsgi

我在CentOS 7.4中使用Python 2.7.5中的Flask 1.0.2。不时(例如,20%或30%的时间)从路线功能返回值会挂起。我已经通过在日期之前放入一个日志条目来验证它是否一直到return语句(即使调用挂起,日志条目也会显示在日志中)。它发生在我的所有功能上,所以为了清晰起见,我将包含最简单的功能:

@my_app.route("/signingkey", methods=['GET'])
def signing_key():
    """
    signing_key:    Provides the client with the current signing key (the public portion of it) for the domain

    :return:        The contents of the public key
    """

    try:
        provision_app.logger.info("Providing signing key")
        return utility.get_signing_key(True), 200, CT_TP

    except Exception:
        return utility.get_exception_text(), 500, CT_TP

注意:CT_TP = {'内容类型':' text / plain'}

注意:utility.get_signing_key()返回一个文本块作为str对象

我试过回烧瓶。反应物,但没有改变症状。

我在Apache 2.4.6-80中通过WSGI运行Flask应用程序。我的WSGI文件如下所示:

import sys
sys.path.insert(0, '/opt/my_app/')
# noinspection PyPep8
from provision import my_app as application

我的Apache conf.d文件如下所示:

<VirtualHost *>
    WSGIDaemonProcess my_app user=my_app group=my_app threads=4 processes=8
    WSGIScriptAlias / /opt/my_app/myapp.wsgi

    <Directory /opt/my_app/>
        WSGIProcessGroup my_app
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>
</VirtualHost>

服务器是一个VM(kvm),具有4个VCPU和8GB RAM。这个应用程序是服务器必须执行的唯一负载,并且很少获得超过3%的CPU利用率(当应用程序投入生产时,预计会更高,但在此测试阶段,几乎没有压力在服务器上。)

我考虑过刚刚修理服务器并重新开始,但我真的很想知道Flask的用途。

非常感谢任何帮助,想法或观察。

0 个答案:

没有答案