У меня есть список лиц List<Entity> entitiesList
. Мне нужно опубликовать и сохранить список событий для каждой сущности. У меня есть агрегат для Entity, все необходимые обработчики, CreateEntityCommand и EntityCreatedEvent. В настоящее время я делаю: 1. Создаю команды в цикле и отправляю эти команды через командный шлюз для каждого объекта из entityList.
for (Entity entity : entitiesList) {
CreateEntityCommand createEntityCommand = new CreateEntityCommand();
… here I set command’s fields …
commandGateway.send(createEntityCommand);
}
- Внутри совокупности у меня есть
@CommandHandler
public EntityAggregate(CreateEntityCommand createAlertCommand) {
EntityCreatedEvent entityCreatedEvent = new EntityCreatedEvent();
…. here I set event’s fields
AggregateLifecycle.apply(entityCreatedEvent);
}
В результате события создаются, публикуются и сохраняются в таблице DomainEventEntry внутри цикла одно за другим. Если у меня 10000 сущностей - этот процесс занимает много времени ... Мой вопрос - как я могу улучшить этот процесс создания, публикации и сохранения списка сущностей?
Я использую эту версию аксона:
<dependency>
<groupId>org.axonframework</groupId>
<artifactId>axon-spring-boot-starter</artifactId>
<version>4.3</version>
<exclusions>
<exclusion>
<groupId>org.axonframework</groupId>
<artifactId>axon-server-connector</artifactId>
</exclusion>
</exclusions>
</dependency>
Конфигурация SpringBoot с аннотацией @SpringBootApplication. Я не настраивал ничего особенного для Axon.