【发布时间】:2014-09-30 22:31:42
【问题描述】:
我有一个烧瓶应用程序,它通过给定的 URL 连接到外部服务(响应时间不同,但通常很长)并在那里搜索一些东西。之后,对检索到的数据进行了一些 CPU 繁重的操作。这也需要一些时间。
我的问题:外部响应可能需要一些时间。您对此无能为力,但是当您同时有多个请求时,它会成为一个大问题 - 对外部服务的烧瓶请求会阻塞线程,其余的正在等待。
显然是在浪费时间,而且它正在扼杀应用程序。
我听说过这个名为 Tornado 的异步库。还有我的问题:
- 这是否意味着它可以处理多个请求并在外部响应后立即触发回调?
- 我可以用我当前的烧瓶应用程序实现这一点(我猜可能不是因为 WSGI?)或者我需要将整个应用程序重写为 Tornado?
- 那些 CPU 繁重的操作会怎样 - 这会阻塞我的线程吗?无论如何,做一些负载平衡是个好主意,但我很好奇 Tornado 是如何处理的。
- 可能的陷阱,陷阱?
【问题讨论】:
标签: python multithreading web-services flask tornado