我遇到了基于Flask-Restul构建的API间歇性地无响应的情况。目前它是从Werkzeug(我知道仅用于非生产用途)和单线程运行的。为了使事情进一步复杂化,这也包含在另一个应用程序中的axscript中。
当没有响应时,CLOSE_WAIT
中会显示大量套接字,因此在客户端启动的套接字拆卸过程中无法正确处理。
由于这是运行单线程,似乎请求处理程序的内部可能无限期阻止阻止其他请求被接受并最终导致客户端超时。但是,当线程忙时,这会阻止套接字实际关闭。
这听起来像基于其他框架知识的理智假设吗?此外,如果在请求处理程序中抛出了无法处理的异常,这是否会导致返回500错误,或者是否存在其他情况我错过了?