首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python异步run_forever或while

python异步run_forever或while
EN

Stack Overflow用户
提问于 2015-09-24 12:16:35
回答 1查看 12.8K关注 0票数 5

我是应该在代码中替换while True (没有异步),还是应该使用异步事件循环来实现相同的结果。

目前,我工作的是某种类型的“工作者”,它连接到zeromq,接收一些数据,然后对外部工具(服务器)执行一些请求(http)。所有东西都是用普通的阻塞IO编写的。使用异步事件循环来消除while True: ...是否有意义?

将来可能会完全用异步重写,但现在我害怕从异步开始。

我是新来的异步的,并不是这个库的所有部分对我来说都很清楚:)

Thx :)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-24 15:04:40

如果您想开始使用不支持异步代码的库编写异步代码,可以使用遗嘱执行人

这允许您提交一个可调用的ThreadPoolExecutorProcessPoolExecutor,并异步获取结果。默认的执行器是由5个线程组成的线程池。

示例:

代码语言:javascript
复制
# Python 3.4
@asyncio.coroutine
def some_coroutine(*some_args, loop=None):
    while True:
        [...]
        result = yield from loop.run_in_executor(
            None,  # Use the default executor
            some_blocking_io_call, 
            *some_args)
        [...]

# Python 3.5
async def some_coroutine(*some_args, loop=None):
    while True:
        [...]
        result = await loop.run_in_executor(
            None,  # Use the default executor
            some_blocking_io_call, 
            *some_args)
        [...]

loop = asyncio.get_event_loop()
coro = some_coroutine(*some_arguments, loop=loop)
loop.run_until_complete(coro)
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32761095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档