2017-05-29 83 views
1

我希望我的Flask应用程序忽略对端点的一些请求,并且不回答它们,即使出现错误。我寻找的效果是故意让客户挂起(这是为了展示一些有点深奥但在此详细解释的东西 - 这绝对不是为了产品或任何重要的东西,我知道它违背了一切一个理智的应用程序应该这样做!)。Have Flask没有回应请求,故意留下客户端

我希望我能以某种方式实现这一点,即使它是hacky。

有没有什么办法可以让Flask完全没有办法,杀死它的线程,让客户端挂起,并继续正常的操作来处理所有其他请求? IE:

@app.route('/hang') 
def hang(): 
    # do absolutely nothing and continue normal operations 
    # don't return 500 or anything 

回答

0

我也想知道这是一个更“隐形”的服务器的方式,我在这里找不到很多好的建议。简单的睡眠可以在这里工作吗?

import time 

@app.route('/hang') 
def hang(): 
    while True: 
     time.sleep(1000) 
    return 

从我的本地PC运行,上面的代码与睡眠将阻止其他请求被处理。这似乎没问题,因为你提到它不是用于生产,并且我知道在生产中使用mod_wsgi时,每个客户端都会获得它们自己的线程,因此它不会阻止同时发生的请求。因此,也许,因为您只是在本地使用它并可能需要处理多个同时发生的请求,所以您可能可以执行一些多线程操作,因此它是非阻塞的。