Exemplo n.º 1
0
        public Receive()
        {
            try
            {
                if (Consumer == null)
                {
                    Consumer            = new ConsumerProvider();
                    Consumer.Client     = "DataMove";
                    Consumer.ClientName = "MoveMove";

                    Consumer.Config = new BusinessMQConfig()
                    {
                        ManageConnectString = "server=192.168.4.87;Initial Catalog=dyd_bs_MQ_manage;User ID=sa;Password=123456"
                    };
                    Consumer.MaxReceiveMQThread = 1;
                    Consumer.MQPath             = "maohong";
                    Consumer.PartitionIndexs    = new List <int>()
                    {
                        1
                    };
                }
            }
            catch (Exception e)
            {
                this.OpenOperator.Error("错误日志;", new Exception(e.Message));
            }
        }
Exemplo n.º 2
0
        public override void Run()
        {
            if (Consumer == null)
            {
                Consumer        = new ConsumerProvider();
                Consumer.Client = "DataMove";
                Consumer.Client = "MoveMove";
                Consumer.Config = new BusinessMQConfig()
                {
                    ManageConnectString = "server=192.168.4.69;Initial Catalog=dyd_bs_MQ_manage;User ID=sa;Password=123456;"
                };
                Consumer.MaxReceiveMQThread = 1;
                Consumer.MQPath             = "maohong";
                Consumer.PartitionIndexs    = new List <int>()
                {
                    1
                };
                //Consumer.RegisterReceiveMQListener<string>((r) =>
                //{
                //    string str = r.ObjMsg;
                //    r.MarkFinished();

                //});
            }
        }
Exemplo n.º 3
0
 public void ReceiveMessageDemo(Action<string> action)
 {
     if (Consumer == null)
     {
         Consumer = new ConsumerProvider();
         Consumer.Client = "dyd.test.customer1";//clientid,接收消息的(消费者)唯一标示,一旦注册以后,不能更改,业务下线废弃后必须要告知运维,删除消费者注册。
         Consumer.ClientName = "客户端名称";//这个相对随意些,主要是用来自己识别的,要简短
         Consumer.Config = new BusinessMQConfig() { ManageConnectString = "server=192.168.17.237;Initial Catalog=dyd_bs_MQ_manage;User ID=sa;Password=Xx~!@#;" };
         Consumer.MaxReceiveMQThread = 1;//并行处理的线程数,一般为1足够,若消息处理慢,又想并行消费,则考虑 正在使用的分区=并行处理线程数 为并行效率极端最优,但cpu消耗应该不小。
         Consumer.MQPath = "dyd.test";//接收的队列要正确
         Consumer.PartitionIndexs = new List<int>() { 1, 2, 3, 5, 6, 7, 8 };//消费者订阅的分区顺序号,从1开始
         Consumer.RegisterReceiveMQListener<string>((r) =>
         {
             /*
                * 这些编写业务代码
                * 编写的时候要注意考虑,业务处理失败的情况。
                * 1.重试失败n次。
                * 2.重试还不行,则标记消息已被处理。然后跳过该消息处理,自己另外文档记录这种情况。
                * 消息被消费完毕,一定要调用MarkFinished,标记消息被消费完毕。
                */
             action.Invoke(r.ObjMsg);
             r.MarkFinished();
         });
     }
 }
Exemplo n.º 4
0
        /// <summary>
        /// Запуск в работу всех блоков.
        /// </summary>
        public void Run(Settings settings)
        {
            // Хранилище готовых (сжатых) для записи в файл данных.
            var compressedDataStorage = new CompressedDataStorage(_writeTaskQueue);

            // Блок обработки (компресии/декомпрессии) исходных данных.
            var compressConsumers = new ConsumerProvider <DataPortion>();

            for (var i = 0; i < ThreadCount; i++)
            {
                var compressConsumer = GetConsumer(settings.Mode, _compressingTaskQueue);
                compressConsumer.RegisterOutputStorage(compressedDataStorage);
                compressConsumers.Add(compressConsumer);
            }

            using (var writer = new Writer(settings.DestinationFilename))
            {
                // Блок сохранения в файл готовых данных
                var writerConsumer = new WriterConsumer(writer, _writeTaskQueue.Tasks);

                // Блок чтения исходных данных
                var blockSizeDefinder = GetBlockSizeDefinder(settings.Mode);
                var sourceProducer    = new SourceDataProducer(_compressingTaskQueue);
                sourceProducer.Run(settings.SourceFilename, blockSizeDefinder);

                // Ждём пока блок компресии не закончит работу
                compressConsumers.WaitTillTaskCompleted();

                // Говорим, что от блока компресии в блок сохранения больше заданий не будет
                _writeTaskQueue.Completed();

                // Ждём пока не закончится сохранение в файл
                writerConsumer.Wait();
            }
        }
Exemplo n.º 5
0
 public void ReceiveMessageDemo(Action <string> action)
 {
     if (Consumer == null)
     {
         Consumer            = new ConsumerProvider();
         Consumer.Client     = "dyd.test.customer1"; //clientid,接收消息的(消费者)唯一标示,一旦注册以后,不能更改,业务下线废弃后必须要告知运维,删除消费者注册。
         Consumer.ClientName = "客户端名称";              //这个相对随意些,主要是用来自己识别的,要简短
         Consumer.Config     = new BusinessMQConfig()
         {
             ManageConnectString = "server=192.168.17.237;Initial Catalog=dyd_bs_MQ_manage;User ID=sa;Password=Xx~!@#;"
         };
         Consumer.MaxReceiveMQThread = 1;          //并行处理的线程数,一般为1足够,若消息处理慢,又想并行消费,则考虑 正在使用的分区=并行处理线程数 为并行效率极端最优,但cpu消耗应该不小。
         Consumer.MQPath             = "dyd.test"; //接收的队列要正确
         Consumer.PartitionIndexs    = new List <int>()
         {
             1, 2, 3, 5, 6, 7, 8
         };                                                                 //消费者订阅的分区顺序号,从1开始
         Consumer.RegisterReceiveMQListener <string>((r) =>
         {
             /*
              * 这些编写业务代码
              * 编写的时候要注意考虑,业务处理失败的情况。
              * 1.重试失败n次。
              * 2.重试还不行,则标记消息已被处理。然后跳过该消息处理,自己另外文档记录这种情况。
              * 消息被消费完毕,一定要调用MarkFinished,标记消息被消费完毕。
              */
             action.Invoke(r.ObjMsg);
             r.MarkFinished();
         });
     }
 }
Exemplo n.º 6
0
        public void Receive()
        {
            try
            {
                if (Consumer == null)
                {
                    Consumer            = new ConsumerProvider();
                    Consumer.Client     = "DataMove";
                    Consumer.ClientName = "MoveMove";

                    //string path = AppDomain.CurrentDomain.BaseDirectory + "\\Config\\ConfigCenter.json";
                    //string json = File.ReadAllText(path, Encoding.Default);

                    Consumer.Config = new BusinessMQConfig()
                    {
                        ManageConnectString = "server=192.168.4.117;Initial Catalog=dyd_bs_MQ_manage;User ID=sa;Password=123456;"
                    };
                    Consumer.MaxReceiveMQThread = 1;
                    Consumer.MQPath             = "maohong";
                    Consumer.PartitionIndexs    = new List <int>()
                    {
                        1
                    };
                }
            }
            catch (Exception e)
            {
                this.OpenOperator.Error("错误日志;", new Exception(e.Message));
            }
        }
Exemplo n.º 7
0
        public override void Run()
        {
            try
            {
                if (Consumer == null)
                {
                    Consumer            = new ConsumerProvider();
                    Consumer.Client     = "DataMove";
                    Consumer.ClientName = "MoveMove";

                    Consumer.Config = new BusinessMQConfig()
                    {
                        ManageConnectString = GetConfig.ManagerConnectStr
                    };
                    Consumer.MaxReceiveMQThread = 1;
                    Consumer.MQPath             = GetConfig.MqPath;
                    Consumer.PartitionIndexs    = new List <int>()
                    {
                        1
                    };
                }
            }
            catch (Exception e)
            {
                string str = e.Message;
            }
        }
Exemplo n.º 8
0
 /// <summary>
 /// 关闭消息订阅连接
 /// </summary>
 public void CloseReceiveMessage()
 {
     //注册消费者消息,消费者务必要在程序关闭后关掉(dispose)。否则导致异常终止,要人工等待连接超时后,方可重新注册。
     if (Consumer != null)
     {
         Consumer.Dispose();
         Consumer = null;
     }
 }
Exemplo n.º 9
0
 /// <summary>
 /// 关闭消息订阅连接
 /// </summary>
 public void CloseReceiveMessage()
 {
     //注册消费者消息,消费者务必要在程序关闭后关掉(dispose)。否则导致异常终止,要人工等待连接超时后,方可重新注册。
     if (Consumer != null)
     {
         Consumer.Dispose();
         Consumer = null;
     }
 }
Exemplo n.º 10
0
        public ConsumerProviderTests()
        {
            _mockMerQureConsumer = new Mock <IConsumer>();

            _mockMessagingService = new Mock <IMessagingService>();
            _mockMessagingService.Setup(m => m.GetConsumer(It.IsAny <string>())).Returns(_mockMerQureConsumer.Object);

            _consumerProvider = new ConsumerProvider(_mockMessagingService.Object);
        }
Exemplo n.º 11
0
 /// <summary>
 /// 关闭消息队列
 /// </summary>
 public void CloseReceiveMessage()
 {
     try
     {
         if (Consumer != null)
         {
             Consumer.Dispose();
             Consumer = null;
         }
         base.Dispose();
     }
     catch (Exception e)
     {
         string str = e.Message;
         Consumer = null;
     }
 }
Exemplo n.º 12
0
 public ConsumerService(ILogger <ConsumerService> logger, ConsumerProvider provider)
 {
     _logger   = logger;
     _provider = provider;
 }
Exemplo n.º 13
0
 public ConsumerKiller(ILogger <ConsumerKiller> logger, ConsumerProvider provider) : base(logger, provider)
 {
 }