在跨机器的多个进程调用中执行使用async / await创建的协同程序

时间:2015-11-09 03:00:36

标签: python python-3.x asynchronous distributed-computing python-asyncio

我理解使用python 3.5及其新的async / await功能(非常酷)所显示的基本示例。

我正在探索的一件事是我如何能够开始一些异步工作,并且一旦开始一些阻塞工作,序列化(pickle?)协程的状态,然后在某个延迟的时间点(可能在不同的机器上),重新启动相同的程序,重新加载状态,并尝试取得进展,并重复直到异步工作完成。

特别是在https://docs.python.org/3/library/asyncio-task.html#example-chain-coroutines的图表中...我想知道我是否可以替换事件循环来完成此任务。我怎么可能去做这样的事情?

我希望有更多python协程专业知识的人,asyncio和新的async / await功能可能能够通过分享一些指针或者很可能提出更好的建议来阐明如何使用我正在尝试的方法。

1 个答案:

答案 0 :(得分:1)

asyncio库本身只有套接字,管道和进程。

对于复杂的进程间通信,您需要在asyncio之上构建一些东西。

您的示例描述了典型的消息队列使用情况,例如带有asynqp库的RabbitMQ。

或者你可以使用aiozmq从头开始构建一些东西。

你的问题太宽泛,无法做出严格的回答。