跟着Machinery学习消息队列(二)

420 阅读1分钟

介绍

上一篇我们简单地了解了Machinery如何使用。本篇将通过源码重点分析Machinery的工作原理。

源码分析

发送消息

server发送

source_server_sendtaskwithcontext.png

broker发送

source_amqp_publish.png

消费消息

worker.Launch

souce_worker_launch.png

worker.LaunchAsync

source_worker_launchasynnc.png

amqp接收消息

source_amqp_startconsuming.png

amqp消费消息

source_broker_consumeone.png

调用消息处理函数

source_worker_process.png

结果发送到名为uuid的队列

source_backend_updatestate.png

获取结果

同步获取结果

source_asyncresult_get.png

根据uuid获取任务结果

source_asyncresult_getstate.png

消息消费

source_backend_getstate.png

结束语

Machinery中对外暴露的两个比较重要的接口,一个是Backend接口,另一是Broker接口。Machinery值得我们学习的东西很多,比如如何用redis实现消息队列、如何用redis实现延迟队列、如何用aqmp实现延迟队列等。

链接

上一篇---认识machinery

下一篇---amqp如何实现延迟队列