当我尝试将 CompletableFuture 与 Axon 一起使用时,我遇到了问题。例如:
CompletableFuture future = CompletableFuture.supplyAsync(() -> {
log.info("Start processing target: {}", target.toString());
return new Event();
}, threadPool);
future.thenAcceptAsync(event -> {
log.info("Send Event");
AggregateLifecycle.apply(event);
}, currentExecutor);
在 thenAcceptAsync - AggregateLifecycle.apply(event) 有意外行为。我的一些 @EventSourcingHandler 处理程序开始两次处理事件。有人知道如何解决吗?
我一直在阅读文档,我得到的一切都是:
在大多数情况下,DefaultUnitOfWork 将为您提供所需的功能。它期望处理发生在单个线程中。
所以,看来我应该以某种方式使用 CurrentUnitOfWork.get/set 方法,但仍然无法理解 Axon API。