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