REQ-3502: 消息者隔离
This commit is contained in:
parent
b91f74397b
commit
7a50a808c6
@ -7,6 +7,8 @@ import cn.axzo.msg.center.mq.ConsumerIsolation;
|
|||||||
import cn.axzo.msg.center.mq.IsolationMQListener;
|
import cn.axzo.msg.center.mq.IsolationMQListener;
|
||||||
import cn.axzo.msg.center.service.enums.MqMessageType;
|
import cn.axzo.msg.center.service.enums.MqMessageType;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.rocketmq.spring.annotation.ConsumeMode;
|
||||||
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -14,11 +16,17 @@ import org.springframework.stereotype.Component;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
public class CardPresetButtonSyncTodoHandler extends IsolationMQListener {
|
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
||||||
|
consumerGroup = "GID_topic_card_preset_button_sync_todo_${spring.profiles.active}",
|
||||||
|
consumeMode = ConsumeMode.ORDERLY,
|
||||||
|
nameServer = "${rocketmq.name-server}",
|
||||||
|
maxReconsumeTimes = 3
|
||||||
|
)
|
||||||
|
public class CardPresetButtonSyncTodoListener extends IsolationMQListener {
|
||||||
|
|
||||||
private final TodoSyncCardService todoSyncCardService;
|
private final TodoSyncCardService todoSyncCardService;
|
||||||
|
|
||||||
CardPresetButtonSyncTodoHandler(TodoSyncCardService todoSyncCardService) {
|
CardPresetButtonSyncTodoListener(TodoSyncCardService todoSyncCardService) {
|
||||||
super(ConsumerIsolation.CARD_PRESET_BUTTON_CLICKED_SYNC_TODO,
|
super(ConsumerIsolation.CARD_PRESET_BUTTON_CLICKED_SYNC_TODO,
|
||||||
MqMessageType.CARD_PRESET_BUTTON_PRESSED);
|
MqMessageType.CARD_PRESET_BUTTON_PRESSED);
|
||||||
this.todoSyncCardService = todoSyncCardService;
|
this.todoSyncCardService = todoSyncCardService;
|
||||||
@ -7,6 +7,8 @@ import cn.axzo.msg.center.mq.ConsumerIsolation;
|
|||||||
import cn.axzo.msg.center.mq.IsolationMQListener;
|
import cn.axzo.msg.center.mq.IsolationMQListener;
|
||||||
import cn.axzo.msg.center.service.enums.MqMessageType;
|
import cn.axzo.msg.center.service.enums.MqMessageType;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.rocketmq.spring.annotation.ConsumeMode;
|
||||||
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -14,11 +16,17 @@ import org.springframework.stereotype.Component;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
public class TodoPresetButtonSyncCardHandler extends IsolationMQListener {
|
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
||||||
|
consumerGroup = "GID_topic_todo_preset_button_sync_card_${spring.profiles.active}",
|
||||||
|
consumeMode = ConsumeMode.ORDERLY,
|
||||||
|
nameServer = "${rocketmq.name-server}",
|
||||||
|
maxReconsumeTimes = 3
|
||||||
|
)
|
||||||
|
public class TodoPresetButtonSyncCardListener extends IsolationMQListener {
|
||||||
|
|
||||||
private final TodoSyncCardService todoSyncCardService;
|
private final TodoSyncCardService todoSyncCardService;
|
||||||
|
|
||||||
TodoPresetButtonSyncCardHandler(TodoSyncCardService todoSyncCardService) {
|
TodoPresetButtonSyncCardListener(TodoSyncCardService todoSyncCardService) {
|
||||||
super(ConsumerIsolation.TODO_PRESET_BUTTON_CLICKED_SYNC_CARD,
|
super(ConsumerIsolation.TODO_PRESET_BUTTON_CLICKED_SYNC_CARD,
|
||||||
MqMessageType.TODO_PRESET_BUTTON_PRESSED);
|
MqMessageType.TODO_PRESET_BUTTON_PRESSED);
|
||||||
this.todoSyncCardService = todoSyncCardService;
|
this.todoSyncCardService = todoSyncCardService;
|
||||||
@ -8,6 +8,8 @@ import cn.axzo.msg.center.mq.IsolationMQListener;
|
|||||||
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
|
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
|
||||||
import cn.axzo.msg.center.service.enums.MqMessageType;
|
import cn.axzo.msg.center.service.enums.MqMessageType;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.rocketmq.spring.annotation.ConsumeMode;
|
||||||
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -15,11 +17,17 @@ import org.springframework.stereotype.Component;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
class TodoSyncCardBizHandler extends IsolationMQListener {
|
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
||||||
|
consumerGroup = "GID_topic_todo_sync_card_biz_${spring.profiles.active}",
|
||||||
|
consumeMode = ConsumeMode.ORDERLY,
|
||||||
|
nameServer = "${rocketmq.name-server}",
|
||||||
|
maxReconsumeTimes = 3
|
||||||
|
)
|
||||||
|
class TodoSyncCardBizListener extends IsolationMQListener {
|
||||||
|
|
||||||
private final TodoSyncCardService todoSyncCardService;
|
private final TodoSyncCardService todoSyncCardService;
|
||||||
|
|
||||||
TodoSyncCardBizHandler(TodoSyncCardService todoSyncCardService) {
|
TodoSyncCardBizListener(TodoSyncCardService todoSyncCardService) {
|
||||||
super(ConsumerIsolation.TODO_SYNC_CARD_BIZ, MqMessageType.TODO_STATE_UPDATE);
|
super(ConsumerIsolation.TODO_SYNC_CARD_BIZ, MqMessageType.TODO_STATE_UPDATE);
|
||||||
this.todoSyncCardService = todoSyncCardService;
|
this.todoSyncCardService = todoSyncCardService;
|
||||||
}
|
}
|
||||||
@ -8,6 +8,8 @@ import cn.axzo.msg.center.mq.IsolationMQListener;
|
|||||||
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
|
import cn.axzo.msg.center.service.enums.BizCategoryEnum;
|
||||||
import cn.axzo.msg.center.service.enums.MqMessageType;
|
import cn.axzo.msg.center.service.enums.MqMessageType;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.rocketmq.spring.annotation.ConsumeMode;
|
||||||
|
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -15,11 +17,17 @@ import org.springframework.stereotype.Component;
|
|||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@Component
|
@Component
|
||||||
class TodoSyncCardFlowHandler extends IsolationMQListener {
|
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
||||||
|
consumerGroup = "GID_topic_todo_sync_card_flow_${spring.profiles.active}",
|
||||||
|
consumeMode = ConsumeMode.ORDERLY,
|
||||||
|
nameServer = "${rocketmq.name-server}",
|
||||||
|
maxReconsumeTimes = 3
|
||||||
|
)
|
||||||
|
class TodoSyncCardFlowListener extends IsolationMQListener {
|
||||||
|
|
||||||
private final TodoSyncCardService todoSyncCardService;
|
private final TodoSyncCardService todoSyncCardService;
|
||||||
|
|
||||||
TodoSyncCardFlowHandler(TodoSyncCardService todoSyncCardService) {
|
TodoSyncCardFlowListener(TodoSyncCardService todoSyncCardService) {
|
||||||
super(ConsumerIsolation.TODO_SYNC_CARD_FLOW, MqMessageType.TODO_STATE_UPDATE);
|
super(ConsumerIsolation.TODO_SYNC_CARD_FLOW, MqMessageType.TODO_STATE_UPDATE);
|
||||||
this.todoSyncCardService = todoSyncCardService;
|
this.todoSyncCardService = todoSyncCardService;
|
||||||
}
|
}
|
||||||
@ -139,100 +139,4 @@ public class RocketMQConfig {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
@Component
|
|
||||||
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
|
||||||
consumerGroup = "GID_topic_card_preset_button_sync_todo_${spring.profiles.active}",
|
|
||||||
consumeMode = ConsumeMode.ORDERLY,
|
|
||||||
nameServer = "${rocketmq.name-server}",
|
|
||||||
maxReconsumeTimes = 3
|
|
||||||
)
|
|
||||||
public static class CardPresetButtonSyncTodoListener extends BaseListener implements RocketMQListener<MessageExt> {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private EventConsumer eventConsumer;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMessage(MessageExt message) {
|
|
||||||
ConsumerIsolation.setIsolation(ConsumerIsolation.CARD_PRESET_BUTTON_CLICKED_SYNC_TODO);
|
|
||||||
try {
|
|
||||||
super.onEvent(message, eventConsumer);
|
|
||||||
} finally {
|
|
||||||
ConsumerIsolation.clearIsolation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
@Component
|
|
||||||
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
|
||||||
consumerGroup = "GID_topic_todo_preset_button_sync_card_${spring.profiles.active}",
|
|
||||||
consumeMode = ConsumeMode.ORDERLY,
|
|
||||||
nameServer = "${rocketmq.name-server}",
|
|
||||||
maxReconsumeTimes = 3
|
|
||||||
)
|
|
||||||
public static class TodoPresetButtonSyncCardListener extends BaseListener implements RocketMQListener<MessageExt> {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private EventConsumer eventConsumer;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMessage(MessageExt message) {
|
|
||||||
ConsumerIsolation.setIsolation(ConsumerIsolation.TODO_PRESET_BUTTON_CLICKED_SYNC_CARD);
|
|
||||||
try {
|
|
||||||
super.onEvent(message, eventConsumer);
|
|
||||||
} finally {
|
|
||||||
ConsumerIsolation.clearIsolation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
@Component
|
|
||||||
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
|
||||||
consumerGroup = "GID_topic_todo_sync_card_biz_${spring.profiles.active}",
|
|
||||||
consumeMode = ConsumeMode.ORDERLY,
|
|
||||||
nameServer = "${rocketmq.name-server}",
|
|
||||||
maxReconsumeTimes = 3
|
|
||||||
)
|
|
||||||
public static class TodoSyncCardBizListener extends BaseListener implements RocketMQListener<MessageExt> {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private EventConsumer eventConsumer;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMessage(MessageExt message) {
|
|
||||||
ConsumerIsolation.setIsolation(ConsumerIsolation.TODO_SYNC_CARD_BIZ);
|
|
||||||
try {
|
|
||||||
super.onEvent(message, eventConsumer);
|
|
||||||
} finally {
|
|
||||||
ConsumerIsolation.clearIsolation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Slf4j
|
|
||||||
@Component
|
|
||||||
@RocketMQMessageListener(topic = "topic_msg_center_${spring.profiles.active}",
|
|
||||||
consumerGroup = "GID_topic_todo_sync_card_flow_${spring.profiles.active}",
|
|
||||||
consumeMode = ConsumeMode.ORDERLY,
|
|
||||||
nameServer = "${rocketmq.name-server}",
|
|
||||||
maxReconsumeTimes = 3
|
|
||||||
)
|
|
||||||
public static class TodoSyncCardFlowListener extends BaseListener implements RocketMQListener<MessageExt> {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private EventConsumer eventConsumer;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onMessage(MessageExt message) {
|
|
||||||
ConsumerIsolation.setIsolation(ConsumerIsolation.TODO_SYNC_CARD_FLOW);
|
|
||||||
try {
|
|
||||||
super.onEvent(message, eventConsumer);
|
|
||||||
} finally {
|
|
||||||
ConsumerIsolation.clearIsolation();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user