CAP.DotNet源码追踪(一)消息是如何执行的,执行后又是如何执行回调的
CAP源码追踪(一)消息是如何执行的,执行后又是如何执行回调的 场景 .NET Core 3.1 nuget包:DotNetCore.CAP.RabbitMQ 3.0.2 前言 以对话为引,梳理我们的问题: 小明-聪明绝顶的程序猿,小红-绝美程序媛 小红:小明,在CAP中,我们通过 CapSubscribe 特性来订阅方法,而我们写的消息处理中,返回值一般都是void/Task,那么这个返回值类型有什么用呀或者说这个返回值有什么用呢? 小明一看表现的机会来了,马上回复了一句:百因必有果,既然有返回类型这个东西,那么CAP设计者肯定会利用这一点来进行应用,不会无故忽视这个功能的 小红:小明,那它到底有什么作用呢? 小明:既然想知道它的作用,那么就应该去学习它的消息执行原理,分析其执行过程,自然就明白它的返回值的作用了。 小红:哇,问题一下从返回值的作用上升到了CAP执行原理了,小明,快给我讲讲呀😉 小明心想是时候表演真正的技术了~✨ @# *$&( #@*&(^$#@( 正文 从应用层面来看,我们使用CAP主要就是使用它的消息发送和订阅,既然要学习它的执行原理,那么就直接从消息发送出发来学习 MQ发送 以常用情况为例,我们通过注册的 ICapPublisher 下的 PublishAsync 来发送消息 首先先看一下方法定义: Task PublishAsync<T>(string