/// <summary> /// Initializes a new instance of the <see cref="BackGroundMessageMgr"/> class. /// 创建接受消息实例 /// </summary> /// <param name="bussinessTypes">接受消息的所有bussinessTypes</param> public BackGroundMessageMgr(params string[] bussinessTypes) { Task.Run(() => { // 订阅所有的routerKey foreach (var item in bussinessTypes) { MQManager <SetBackGroudMessageArgs> .ConsumeRegister( GetRouter(item), GetQueue(item), false, (MQProtocol <SetBackGroudMessageArgs> m, Exception ex) => { // if (ex != null) // { // if (m != null) // { // string msg = m.ToString(); // Console.WriteLine(msg); // return true; if (this.OnBackGroundMessageReceive != null) { return(this.OnBackGroundMessageReceive(m, ex)); } // } // } return(false); // 如果没有回调,不能随意删除消息 }); } }); }
/// <summary> /// Initializes a new instance of the <see cref="MQExtend{M}"/> class. /// 初始化一个消息队列 /// </summary> /// <param name="routerKeys">routerKeys</param> /// <param name="hostName">hostName</param> public MQExtend(string hostName, params string[] routerKeys) { foreach (var itemKey in routerKeys) { MQManager <M> .ConsumeRegister( GetRouter(itemKey, hostName), GetQueue(itemKey, hostName), false, (MQProtocol <M> m, Exception ex) => { // if (ex != null) // { // if (m != null) // { // string msg = m.ToString(); // Console.WriteLine(msg); // return true; if (this.OnGrantMQMessageReceive != null) { return(this.OnGrantMQMessageReceive(m, ex)); } // } // } return(false); // 如果没有回调,不能随意删除消息 }); } }
/// <summary> /// Initializes a new instance of the <see cref="BackGroundDirectMessage"/> class. /// 创建接受消息实例 /// </summary> /// <param name="bussinessTypes">接受消息的所有bussinessTypes</param> public BackGroundDirectMessage(params MessageRouterMap[] messageRouterMap) { if (messageRouterMap?.Any(x => string.IsNullOrEmpty(x.BussinessApiName) || string.IsNullOrEmpty(x.MQRouterName)) ?? true) { throw new Exception("BackGroundDirectMessage构造函数的参数不合法"); } Task.Run(() => { // 订阅所有的routerKey foreach (var item in messageRouterMap) { MQManager <SetBackGroudMessageArgs> .ConsumeRegister( GetRouter(item.MQRouterName), //点对点的消息,必须安装消息发布者的router和队列 GetQueue(item.MQRouterName), //同上 false, (MQProtocol <SetBackGroudMessageArgs> m, Exception ex, object objCtx) => { if (this.OnBackGroundMessageReceive != null) { return(this.OnBackGroundMessageReceive(m, ex, objCtx)); } return(false); // 如果没有回调,不能随意删除消息 }, item.BussinessApiName); } }); }