我应该在代码中替换while True
(没有asyncio),还是应该使用asyncio事件循环来完成相同的结果。
目前我在某种与“zeromq”连接的“worker”上工作,接收一些数据,然后对外部工具(服务器)执行一些请求(http)。一切都是用普通阻止IO编写的。使用asyncio事件循环摆脱while True: ...
?
将来它可能会在asyncio中完全重写,但现在我害怕从asyncio开始。
我是asyncio的新手,并不是这个库的所有部分对我来说都很清楚:)
Thx:)
答案 0 :(得分:6)
如果您想开始使用不支持它的库编写asyncio代码,可以使用BaseEventLoop.run_in_executor。
这允许您将可调用提交到ThreadPoolExecutor或ProcessPoolExecutor并异步获取结果。默认执行程序是一个包含5个线程的线程池。
示例:
$this->Auth->allow('index')