我知道tornado是一个单线程和非阻塞服务器,因此请求按顺序处理(除非使用事件驱动方法进行IO操作).
有没有办法在龙卷风中并行处理多个请求以进行正常(非IO)执行.我不能分叉多个进程,因为我需要跨请求的公共内存空间.
如果不可能,请向我建议其他可以处理并行请求的python服务器,并且还支持wsgi.
我有写在一个WebService 瓶,包裹在一个WSGIContainer由担任龙卷风利用其FallbackHandler机制.我在flask webservice中的一个路由运行一个非常长的操作(大约需要5分钟完成),当触发此路由时,阻止对任何路由的每个其他调用,直到操作完成.我该如何解决这个问题?
以下是使用Tornado提供Flask应用程序的方法:
parse_command_line()
frontend_path = os.path.join(os.path.dirname(__file__),"..","webapp")
rest_app = WSGIContainer(app)
tornado_app = Application(
[
(r"/api/(.*)", FallbackHandler, dict(fallback=rest_app)),
(r"/app/(.*)", StaticFileHandler, dict(path=frontend_path))
]
)
Run Code Online (Sandbox Code Playgroud)