据我所知,异步网络框架/库如twisted,tornado和asyncio通过实现非阻塞套接字和事件循环提供异步IO.Gevent通过猴子修补标准库实现了基本相同的功能,因此不需要通过回调和协同程序进行显式异步编程.
另一方面,异步任务队列(如Celery)管理后台任务并在多个线程或机器上分配这些任务.我不完全理解这个过程,但它涉及消息代理,消息和工作者.
我的问题,
异步任务队列是否需要异步IO?它们有任何关联吗?这两个概念看似相似,但应用程序级别的实现是不同的.我认为他们唯一的共同点就是"异步"这个词,所以也许就是让我失望.
有人可以详细说明任务队列的工作方式以及消息代理之间的关系(为什么需要它们?),工作者和消息(什么是消息?字节?).
哦,我不是要解决任何具体问题,我只是想了解异步任务队列和异步IO背后的想法.