我有一台可以通过MIDI进行文件I /
O的设备。我有一个使用Mido的脚本,该脚本可以下载文件,但这是一堆全局变量。我想整理一下以正确使用asyncio,但是我不确定如何集成mido回调。我认为文档说我应该使用Future对象,但是我不确定mido回调函数如何获取该对象。
mido
提供了一个基于回调的API,该API将从另一个线程中调用回调。回调的实现可以通过调用与asyncio通信loop.call_soon_threadsafe
。请注意,您将无法仅设置a的值,Future
因为回调将被多次调用,并且future只能被设置一次-这意味着一次性计算。
多次调用回调的常见模式是将事件推送到asyncio队列,并在asyncio代码中弹出事件。通过将队列公开为异步迭代器,可以更加方便。此功能使过程自动化:
def make_stream():
loop = asyncio.get_event_loop()
queue = asyncio.Queue()
def callback(message):
loop.call_soon_threadsafe(queue.put_nowait, message)
async def stream():
while True:
yield await queue.get()
return callback, stream()
make_stream
返回两个对象:
mido.open_input()
async for
以获取新消息每当mido在其后台线程中调用回调时,async for
在流上迭代的asyncio循环都将唤醒一个新项。有效地make_stream
将线程回调转换为异步迭代器。例如(未测试):
async def print_messages():
# create a callback/stream pair and pass callback to mido
cb, stream = make_stream()
mido.open_input(callback=cb)
# print messages as they come just by reading from stream
async for message in stream:
print(message)
问题内容: 我最近一直在四处寻找,以找到一种在nodeJS和PHP之间进行通信的好方法。这里是一个想法:nodeJS还是一个很新的东西,仅使用它开发一个完整的应用程序可能有点棘手。而且,您可能只需要项目的一个模块(例如实时通知,聊天等),就可以使用PHP来管理所有其他内容,因为它可能对您来说更容易(而且您可以利用现有框架,例如CodeIgniter或Symfony)。 我想有一个简单的解决方案;
本文向大家介绍如何集成 Spring Boot 和 ActiveMQ?相关面试题,主要包含被问及如何集成 Spring Boot 和 ActiveMQ?时的应答技巧和注意事项,需要的朋友参考一下 对于集成 Spring Boot 和 ActiveMQ,我们使用 spring-boot-starter-activemq 依赖关系。 它只需要很少的配置,并且不需要样板代码。
我最近一直在寻找一种在nodeJS和PHP之间进行通信的好方法。这里有一个想法:nodeJS仍然是相当新的,仅仅用它开发一个完整的应用程序可能有点棘手。此外,您可能只需要用于项目的一个模块,如实时通知、聊天等,而您希望用PHP管理所有其他内容,因为它对您来说可能更容易(而且您可以利用现有的框架,如CodeIgniter或Symfony)。
如何集成Spring和JSF?我跟踪了Spring文档(关于这个主题的文档很少),并搜索了更多文档,目前我发现了两种工作方式: 我将使用@managedbean,JSF作用域工作,但我不能使用@autowired,这个bean必须包含setter,我不确定这是否是最佳实践: 其它的呢?
我对此进行了研究,发现了许多集成CKEditor的方法,但我在集成CKFinder时遇到了问题。我的网站是由其他人创建的,但我觉得我可以自己集成这个。 该网站包含文章,我有一个使用CKEditor的“视图”。它工作得很好,但我无法将图像上传到服务器或浏览服务器图像以在CKEditor中插入照片。因此,我无法在文章文本中添加照片。我希望CKFinder能解决这个问题。 我已经上传了CKFinder文
我有一些用akka写的演员,我想通过ServiceMix让他们互动。很难,我对这些技术是如何交互的有点困惑。这是我目前所理解的: < li>akka让我写一些演员: < ul > < li >生产者发送消息 < li >消费者接收消息 < li >发送和接收的非类型化编辑器 每个参与者将在一个固定的endpoint上可用,在ServiceMix中定义为route 现在我的问题是: 谁自动在jett
null 如何在transform()步骤中添加Jaxb2Marshaller?
问题内容: 我正在从Coursera学习Python。在本课程中,他们使用 CodeSkulptor 上的SimpleGUI模块。谁能告诉我如何将SimpleGUI与python 2.7和3.0 shell集成在一起? 问题答案: 来自Darren Gallagher的Coursera论坛 从CodeSkulptor文档中: http://www.codeskulptor.org/docs.htm