REQ-2516-调整分批次发送mq消息代码

This commit is contained in:
yangqicheng 2024-07-12 09:51:18 +08:00
parent a67dd3ddfc
commit eee3f4f882

View File

@ -268,12 +268,16 @@ public class RocketMqMessagePushEventListener extends AbstractBpmnEventListener<
throw new NullPointerException("event不能为空");
}
List<BpmnTaskDelegateAssigner> assigners = event.getAssigners();
if (CollectionUtils.isEmpty(assigners) || assigners.size() <= MQ_ASSIGNER_BATCH_SIZE) {
return Collections.singletonList(build(templateId, type, event, collectionVariable(event)));
}
List<MessagePushDTO> slice = new ArrayList<>();
Map<String, Object> objectMap = collectionVariable(event);
int startIndex = 0;
do {
List<BpmnTaskDelegateAssigner> batchAssigners = assigners.subList(startIndex, Integer.min(startIndex + MQ_ASSIGNER_BATCH_SIZE, assigners.size()));
MessagePushEventImpl messagePushEvent = BeanConverter.convert(event, MessagePushEventImpl.class);
MessagePushEventImpl messagePushEvent = new MessagePushEventImpl(event.getType());
BeanConverter.convert(event, messagePushEvent);
messagePushEvent.setAssigner(batchAssigners);
MessagePushDTO dto = build(templateId, type, messagePushEvent, objectMap);
slice.add(dto);