枪械上的异步工人似乎在阻挡

时间:2015-04-08 23:55:29

标签: flask gunicorn gevent

我正在使用带有gunicorn服务器和gevent worker类的Flask应用程序,根据the gunicorn documentation,它是一个异步工作程序。然而,当我与一名工作人员一起发射炮弹并试图提出长期请求时(我在路线功能中添加了sleep(10),但实际上在处理大型上传时也会发生这种情况),我无法做任何事情请求,直到上一个完成。它的行为与同步工作者一样,一次一个请求。

这是正常行为吗?我错过了有关同步和异步工作人员的事情吗?

1 个答案:

答案 0 :(得分:4)

如果你不修补sleep(或使用gevent' s non-blocking version of sleep),那么阻止阻止整个事件循环的工作人员

致电gevent.monkey.patch_all(或更具体地说,gevent.monkey.patch_timetime.sleep的来电替换为gevent.sleep