Example #1
0
        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);
        }
Example #2
0
 /// <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;
 }
Example #3
0
        protected virtual void BeforeQueueRun(ICommunicationQueue queue)
        {
            queue.ExcptionCallback = OnCommunicationException;

            // 数据接收队列
            BeforePopQueueRun(queue as IPopQueue);
            // 数据发送队列
            BeforePushQueueRun(queue as IPushQueue);

            if (BeforeQueueRunEvent == null)
            {
                return;
            }
            // 通知队列创建完成
            BeforeQueueRunEvent(this, queue);
        }
Example #4
0
 /// <summary>
 /// 启动队列
 /// </summary>
 /// <param name="queue">队列</param>
 public void RunQueue(ICommunicationQueue queue)
 {
     OnRunQueue(queue);
 }
Example #5
0
 /// <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 ?? "未知"));
 }
Example #6
0
 public MockEventBus(ICommunicationQueue q) => _internalPublisher = q.GetMessagePublisher("Mock");