Exemple #1
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();
         });
     }
 }
Exemple #2
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();
         });
     }
 }
Exemple #3
0
        public override void Run()
        {
            Register();
            Receive();
            ConfigCenter();
            var d = Container.Resolve <IMigration>();

            this.OpenOperator.Log("Run");
            try
            {
                Consumer.RegisterReceiveMQListener <string>((r) =>
                {
                    string str = r.ObjMsg;

                    this.OpenOperator.Log("获取消息:" + str);

                    str = d.MirgrationById(str);

                    this.OpenOperator.Log("运行结果:" + str);

                    r.MarkFinished();
                });
            }
            catch (Exception e)
            {
                this.OpenOperator.Error("错误:", new Exception(e.Message));
            }
        }
Exemple #4
0
 public override void Run()
 {
     Consumer.RegisterReceiveMQListener <string>((r) =>
     {
         string str = r.ObjMsg;
         r.MarkFinished();
         this.OpenOperator.Log("获取消息:" + str);
     });
 }