据我所知,Twisted、Tornado和Asyncio等异步网络框架/库通过实现非阻塞套接字和事件循环来提供异步IO。Gevent通过猴子补丁标准库实现了基本相同的功能,因此不需要使用显式的回调和协程进行异步编程。
另一方面,像Celery这样的异步任务队列管理后台任务并在多个线程或机器上分配这些任务。我不完全了解这个过程,但它涉及消息代理、消息和工作进程。
我的问题是,
1. 异步任务队列是否需要异步IO?它们在任何方面相关吗?这两个概念似乎相似,但在应用程序级别的实现方式不同。我认为它们唯一共同之处就是“异步”这个词,所以可能会使我感到困惑。 2. 某人能否详细说明任务队列的工作原理和消息代理(为什么需要它们?)、工作进程和消息之间的关系(消息是什么?字节?)。
哦,我不是要解决任何具体问题,我只是想理解异步任务队列和异步IO背后的思想。
另一方面,像Celery这样的异步任务队列管理后台任务并在多个线程或机器上分配这些任务。我不完全了解这个过程,但它涉及消息代理、消息和工作进程。
我的问题是,
1. 异步任务队列是否需要异步IO?它们在任何方面相关吗?这两个概念似乎相似,但在应用程序级别的实现方式不同。我认为它们唯一共同之处就是“异步”这个词,所以可能会使我感到困惑。 2. 某人能否详细说明任务队列的工作原理和消息代理(为什么需要它们?)、工作进程和消息之间的关系(消息是什么?字节?)。
哦,我不是要解决任何具体问题,我只是想理解异步任务队列和异步IO背后的思想。