From 2032f39bf9664cafcc3a92d6ae9aa9b73ad96507 Mon Sep 17 00:00:00 2001 From: Redkale <8730487+redkale@users.noreply.github.com> Date: Thu, 11 Jun 2020 14:51:22 +0800 Subject: [PATCH] --- src/org/redkale/mq/MessageMultiConsumer.java | 33 ++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/org/redkale/mq/MessageMultiConsumer.java b/src/org/redkale/mq/MessageMultiConsumer.java index 91c148128..a08b1b4db 100644 --- a/src/org/redkale/mq/MessageMultiConsumer.java +++ b/src/org/redkale/mq/MessageMultiConsumer.java @@ -10,9 +10,38 @@ import static java.lang.annotation.ElementType.*; import static java.lang.annotation.RetentionPolicy.RUNTIME; /** - * 多消费组,需要同 @RestService 一起使用 + * 多消费组,需要同 @RestService 一起使用 *

- * 标记 @MessageMultiConsumer 的Service的@RestMapping方法都只能是void返回类型 + * 通常一个topic只会被一个RestService消费, 当一个topic需要被其他RestService消费时,就需要使用@MessageMultiConsumer + * + *

+ * @RestService(name = "user", comment = "用户服务")
+ * public class UserService implements Service{
+ *
+ *      @RestMapping(comment = "用户登录")
+ *      public RetResult login(LoginBean bean){
+ *          //do something
+ *      }
+ * }
+ * 
+ * + * 需求:统计用户登录次数, 可以创建一个MessageMultiConsumer 的 RestService: + *
+ * @MessageMultiConsumer(module = "user") 
+ * @RestService(name = "loginstat", comment = "用户统计服务")
+ * public class LoginStatService implements Service{
+ *
+ *      private AtomicLong counter = new AtomicLong();
+ *
+ *      @RestMapping(name = "login", comment = "用户登录统计")
+ *      public void stat(LoginBean bean){     //参数必须和UserService.login方法一致
+ *          counter.incrementAndGet();
+ *      }
+ * }
+ * 
+ * + *

+ * 注: 标记 @MessageMultiConsumer 的Service的@RestMapping方法都只能是void返回类型 * *

* 详情见: https://redkale.org