第9到12篇熟悉工作线程池和使用和触发工作线程池的服务ConsumerWorkService类,上面它们是不关心任务是什么,只管干活,那么谁知道是什么任务,或者受到rabbitmq服务器的消息,谁去判断是什么?有组装什么任务呢?这个就我们这篇要解析ConsumerDispatcher, 就是派发工作的包工头。
- 它也是一个final修饰的普通类
- 看类描述,它分派和通知内部管理执行器服务和工作池进行工作的,且每个通道有一个ConsumerDispatcher服务,你可以想象一下每个水管都套转接头, 但是执行服务和工作池是共享,我们熟悉WorkPool源码,Map的key就是channel, value具体任务。
1、成员变量
| 类型 | 字段 | 默认值 | 含义 |
|---|---|---|---|
| ConsumerWorkService | workService | 工作服务类 | |
| AMQConnection | connection | 连接对象主要为了处理消费工作异常通知 | |
| Channel | channel | 通道 | |
| volatile boolean | shuttingDown | false | 多线程可见,是否关闭 |
| volatile boolean | shutdownConsumersDriven |
RabbitMQ ConsumerDispatcher源码分析

最低0.47元/天 解锁文章
278

被折叠的 条评论
为什么被折叠?



