public override ICommunicationQueue CreateQueue(IQueueConfig baseConfig) { var config = ((MqConfig)baseConfig).Clone(); ICommunicationQueue result = null; switch (config.RoleType.ToLower()) { case "consumer": { //result = new MqConsumerQueue(this); result = new MqFastConsumerQueue(this); break; } case "producer": { result = new MqProductorQueue(this); break; } } if (result != null) { result.Config = config; } return(result); }
/// <summary> /// 启动队列 /// </summary> /// <param name="queue">队列</param> protected virtual void OnRunQueue(ICommunicationQueue queue) { queue.Initialize(); if (RunQueueDic == null) { RunQueueDic = new System.Collections.Concurrent.ConcurrentDictionary <string, ICommunicationQueue>(); } RunQueueDic[queue.FindKey] = queue; }
protected virtual void BeforeQueueRun(ICommunicationQueue queue) { queue.ExcptionCallback = OnCommunicationException; // 数据接收队列 BeforePopQueueRun(queue as IPopQueue); // 数据发送队列 BeforePushQueueRun(queue as IPushQueue); if (BeforeQueueRunEvent == null) { return; } // 通知队列创建完成 BeforeQueueRunEvent(this, queue); }
/// <summary> /// 启动队列 /// </summary> /// <param name="queue">队列</param> public void RunQueue(ICommunicationQueue queue) { OnRunQueue(queue); }
/// <summary> /// 通信异常消息处理 /// </summary> /// <param name="queue">消息队列</param> /// <param name="ex">异常</param> /// <param name="append">附加信息</param> protected virtual void OnCommunicationException(ICommunicationQueue queue, Exception ex, string append) { FrameworkLogWrite.WriteError(ex, string.Format("通信队列:{0},异常,信息 :{1}", queue.FindKey, append ?? "未知")); }
public MockEventBus(ICommunicationQueue q) => _internalPublisher = q.GetMessagePublisher("Mock");