- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我应该更换 while True
在我的代码中(没有 asyncio)或者我应该使用 asyncio 事件循环来完成相同的结果。
目前我在某种连接到 zeromq 的“ worker ”上工作,接收一些数据,然后对外部工具(服务器)执行一些请求(http)。一切都写在正常的阻塞 IO 中。使用 asyncio 事件循环摆脱 while True: ...
有意义吗? ?
将来它可能会在 asyncio 中完全重写,但现在我害怕从 asyncio 开始。
我是 asyncio 的新手,并不是这个库的所有部分对我来说都很清楚:)
谢谢 :)
最佳答案
如果你想用一个不支持它的库开始编写异步代码,你可以使用 BaseEventLoop.run_in_executor .
这允许您将可调用文件提交给 ThreadPoolExecutor或 ProcessPoolExecutor并异步获取结果。默认执行器是 5 个线程的线程池。
例子:
# 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)
关于python asyncio run_forever 或 while True,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32761095/
我修改了这段代码以在异步 Python 中使用 Google Cloud PubSub:https://github.com/cloudfind/google-pubsub-asyncio impor
我想做的事情: 有一个启动的异步事件循环 该循环被传递到我的系统中的各个类,用于调度协程 该循环还用于处理对事件的响应(即,我有一个队列,一些事件处理代码将在该队列上放置一个项目,并在该队列上等待 g
我应该更换 while True在我的代码中(没有 asyncio)或者我应该使用 asyncio 事件循环来完成相同的结果。 目前我在某种连接到 zeromq 的“ worker ”上工作,接收一些
在 python asyncio websockets 库中,示例调用 run_forever() .为什么需要这样做? 不应该run_until_complete()阻止并运行 websockets
代码: #!/usr/bin/env python import asyncio import os import socket import time import traceback from a
我正在使用“ws.run_forever”启动我的 Python Websocket,另一个 source声明我应该使用“run_until_complete()”,但这些函数似乎仅适用于 Pytho
我在 cmd 和 Pycharm 中尝试了以下代码。它在 cmd 中运行良好,但事实证明该代码在 Pycharm 中运行不佳。我无法获得任何更新,并且该过程刚刚完成。我可以知道如何解决这个问题吗?PS
我正在尝试在同一个 python 应用程序中运行一个 websockets 服务器和一个 http 服务器。看起来我正在尝试运行两个永远的循环,而第二个循环没有被激活。关于如何让这两个服务器运行的任何
我是一名优秀的程序员,十分优秀!