将 concurrent.futures 与龙卷风事件循环一起使用?
Use concurrent.futures with tornado event loop?
如何在 Tornado 应用程序中偶尔使用线程和 futures?
我的服务器偶尔需要在单独的线程或进程中执行 运行 长 运行 任务(任务释放 GIL。)我想用 concurrent.futures执行者
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(10)
future = executor.submit(func, *args, **kwargs)
如何将这个未来整合到 Tornado 事件循环中?理想情况下,这种集成与 tornado.gen
协程配合得很好。我想从未来中屈服而不阻碍它。实现此目标的最佳方法是什么?
理想情况下,我想从 concurrent
Future
.
我正在寻找一个函数 f
使以下成为可能
@gen.coroutine
def my_coroutine(...)
...
future = executor.submit(func, *args, **kwargs)
result = yield f(future)
您根本不需要特殊的 f
函数,只需生成 executor.submit
returns:
的 Future
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(10)
@gen.coroutine
def my_coroutine(...)
...
future = executor.submit(func, *args, **kwargs)
result = yield future
如何在 Tornado 应用程序中偶尔使用线程和 futures?
我的服务器偶尔需要在单独的线程或进程中执行 运行 长 运行 任务(任务释放 GIL。)我想用 concurrent.futures执行者
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(10)
future = executor.submit(func, *args, **kwargs)
如何将这个未来整合到 Tornado 事件循环中?理想情况下,这种集成与 tornado.gen
协程配合得很好。我想从未来中屈服而不阻碍它。实现此目标的最佳方法是什么?
理想情况下,我想从 concurrent
Future
.
我正在寻找一个函数 f
使以下成为可能
@gen.coroutine
def my_coroutine(...)
...
future = executor.submit(func, *args, **kwargs)
result = yield f(future)
您根本不需要特殊的 f
函数,只需生成 executor.submit
returns:
from concurrent.futures import ThreadPoolExecutor
executor = ThreadPoolExecutor(10)
@gen.coroutine
def my_coroutine(...)
...
future = executor.submit(func, *args, **kwargs)
result = yield future