Exemple #1
0
        public void ReceiveMessageDemo(Action<string> action)
        {
            //注册消费者消息,ConnInfo务必要在程序关闭后关掉(dispose)。否则导致异常终止,要人工等待连接超时后,方可重新注册。
            ConnInfo = XXF.ProjectTool.MQHelper.ReceiveMessage<string>(new XXF.ProjectTool.ReceiveMessageBusinessMQConfig()
            {
                ManageConnectString = "server=192.168.17.237;Initial Catalog=dyd_bs_MQ_manage;User ID=sa;Password=Xx~!@#;",
                MaxReceiveMQThread = 1,//并行处理的线程数,一般为1足够,若消息处理慢,又想并行消费,则考虑 正在使用的分区=并行处理线程数 为并行效率极端最优,但cpu消耗应该不小。
                PartitionIndexs = new List<int> {1,2,3,4,5,6,7,8 }//消费者订阅的分区顺序号,从1开始
            },
                "dyd.test", //接收的队列要正确
                "dyd.test.customer1", //clientid,接收消息的(消费者)唯一标示,一旦注册以后,不能更改,业务下线废弃后必须要告知运维,删除消费者注册。
                (r) =>//接收消息的回调
                {
                    /*
                     * 这些编写业务代码
                     * 编写的时候要注意考虑,业务处理失败的情况。
                     * 1.重试失败n次。
                     * 2.重试还不行,则标记消息已被处理。然后跳过该消息处理,自己另外文档记录这种情况。
                     * 消息被消费完毕,一定要调用MarkFinished,标记消息被消费完毕。
                     */
                    action.Invoke(r.ObjMsg);

                    r.MarkFinished();//告知BusinessMQ改消息已经被消费,被处理完毕。否则消息会报错,该分区下的消息消费被终止。
                });
        }
        public void ReceiveMessageDemo(Action <string> action)
        {
            //注册消费者消息,ConnInfo务必要在程序关闭后关掉(dispose)。否则导致异常终止,要人工等待连接超时后,方可重新注册。
            ConnInfo = XXF.ProjectTool.MQHelper.ReceiveMessage <string>(new XXF.ProjectTool.ReceiveMessageBusinessMQConfig()
            {
                ManageConnectString = "server=192.168.17.237;Initial Catalog=dyd_bs_MQ_manage;User ID=sa;Password=Xx~!@#;",
                MaxReceiveMQThread  = 1,//并行处理的线程数,一般为1足够,若消息处理慢,又想并行消费,则考虑 正在使用的分区=并行处理线程数 为并行效率极端最优,但cpu消耗应该不小。
                PartitionIndexs     = new List <int> {
                    1, 2, 3, 4, 5, 6, 7, 8
                }                                                                             //消费者订阅的分区顺序号,从1开始
            },
                                                                        "dyd.test",           //接收的队列要正确
                                                                        "dyd.test.customer1", //clientid,接收消息的(消费者)唯一标示,一旦注册以后,不能更改,业务下线废弃后必须要告知运维,删除消费者注册。
                                                                        (r) =>                //接收消息的回调
            {
                /*
                 * 这些编写业务代码
                 * 编写的时候要注意考虑,业务处理失败的情况。
                 * 1.重试失败n次。
                 * 2.重试还不行,则标记消息已被处理。然后跳过该消息处理,自己另外文档记录这种情况。
                 * 消息被消费完毕,一定要调用MarkFinished,标记消息被消费完毕。
                 */
                action.Invoke(r.ObjMsg);

                r.MarkFinished();    //告知BusinessMQ改消息已经被消费,被处理完毕。否则消息会报错,该分区下的消息消费被终止。
            });
        }
Exemple #3
0
 public override void Dispose()
 {
     if (ConnInfo != null)
     {
         ConnInfo.Dispose();
         ConnInfo = null;
     }
 }
Exemple #4
0
 public override void Dispose()
 {
     if (ConnInfo != null)
     {
         ConnInfo.Dispose();
         ConnInfo = null;
     }
 }
Exemple #5
0
 /// <summary>
 /// 关闭消息订阅连接
 /// </summary>
 public void CloseReceiveMessage()
 {
     //注册消费者消息,ConnInfo务必要在程序关闭后关掉(dispose)。否则导致异常终止,要人工等待连接超时后,方可重新注册。
     if (ConnInfo != null)
     {
         ConnInfo.Dispose();
         ConnInfo = null;
     }
 }
 /// <summary>
 /// 关闭消息订阅连接
 /// </summary>
 public void CloseReceiveMessage()
 {
     //注册消费者消息,ConnInfo务必要在程序关闭后关掉(dispose)。否则导致异常终止,要人工等待连接超时后,方可重新注册。
     if (ConnInfo != null)
     {
         ConnInfo.Dispose();
         ConnInfo = null;
     }
 }
Exemple #7
0
 public override void Run()
 {
     if (ConnInfo == null)
     {
         //注册消费者消息,ConnInfo务必要在程序关闭后关掉(dispose)。否则导致异常终止,要人工等待连接超时后,方可重新注册。
         ConnInfo = XXF.ProjectTool.MQHelper.ReceiveMessage<string>(new XXF.ProjectTool.ReceiveMessageBusinessMQConfig()
         {
             ManageConnectString = "server=192.168.17.201;Initial Catalog=dyd_bs_MQ_manage;User ID=sa;Password=Xx~!@#;",
             MaxReceiveMQThread = 1,//并行处理的线程数,一般为1足够,若消息处理慢,又想并行消费,则考虑 正在使用的分区=并行处理线程数 为并行效率极端最优,但cpu消耗应该不小。
             PartitionIndexs = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8 }//消费者订阅的分区顺序号,从1开始
         },
             "dyd.mytest", //接收的队列要正确
             "dyd.mytest.customer1", //clientid,接收消息的(消费者)唯一标示,一旦注册以后,不能更改,业务下线废弃后必须要告知运维,删除消费者注册。
             (r) =>//接收消息的回调
             {
                 this.OpenOperator.Log("测试消息接收测试:" + r.ObjMsg);
                 r.MarkFinished();//告知BusinessMQ改消息已经被消费,被处理完毕。否则消息会报错,该分区下的消息消费被终止。
             });
     }
     this.OpenOperator.Log("测试消息注册成功");
 }
Exemple #8
0
 public override void Run()
 {
     if (ConnInfo == null)
     {
         //注册消费者消息,ConnInfo务必要在程序关闭后关掉(dispose)。否则导致异常终止,要人工等待连接超时后,方可重新注册。
         ConnInfo = XXF.ProjectTool.MQHelper.ReceiveMessage <string>(new XXF.ProjectTool.ReceiveMessageBusinessMQConfig()
         {
             ManageConnectString = "server=192.168.17.201;Initial Catalog=dyd_bs_MQ_manage;User ID=sa;Password=Xx~!@#;",
             MaxReceiveMQThread  = 1,//并行处理的线程数,一般为1足够,若消息处理慢,又想并行消费,则考虑 正在使用的分区=并行处理线程数 为并行效率极端最优,但cpu消耗应该不小。
             PartitionIndexs     = new List <int> {
                 1, 2, 3, 4, 5, 6, 7, 8
             }                                                                               //消费者订阅的分区顺序号,从1开始
         },
                                                                     "dyd.mytest",           //接收的队列要正确
                                                                     "dyd.mytest.customer1", //clientid,接收消息的(消费者)唯一标示,一旦注册以后,不能更改,业务下线废弃后必须要告知运维,删除消费者注册。
                                                                     (r) =>                  //接收消息的回调
         {
             this.OpenOperator.Log("测试消息接收测试:" + r.ObjMsg);
             r.MarkFinished();    //告知BusinessMQ改消息已经被消费,被处理完毕。否则消息会报错,该分区下的消息消费被终止。
         });
     }
     this.OpenOperator.Log("测试消息注册成功");
 }