我正在使用 Axon 框架,而没有带有 spring-boot 自动配置的 Axon 服务器。我的问题是:如果我正在运行一个 saga 进程,如下所示,并且在处理过程中我的磁盘用完了,将会出现异常,我必须回滚。我怎样才能做到这一点?我必须回滚多少?
我的 saga_entry 表将是这样的:
SAGA_ID:22ad255b-4378-4bb4-84c2-061ca666c6e7修订:空,SAGA_TYPE:hu.saga.account.SagaAccount,SERIALIZED_SAGA:3c68752e6d6f6c617269732e736167612e6163636f756e742e536167614163636f756e742f3e
我的 association_value_entry 表将是这样的:
ID: 2, ASSOCIATION_KEY: accountId, ASSOCIATION_VALUE: 11, SAGA_ID: 22ad255b-4378-4bb4-84c2-061ca666c6e7, SAGA_TYPE: hu.saga.account.SagaAccount
在我的 domain_event_entry 表中将只有两个事件(而不是应该是 3 个) AccountCreatedEvent, MoneyWithdrawnEvent ,聚合 id: 11 。
这只是一个例子,主要问题可能是在 Axon Saga 中处理和实现回滚的最佳方法是什么?
@StartSaga
@SagaEventHandler(associationProperty = "accountId")
public void handle(AccountCreatedEvent event){
logger.info("Saga Start");
commandGateway.send(new WithdrawMoneyCommand(event.getAccountId(), event.getAccountId(),event.getOverDraftLimit()));
}
Run Code Online (Sandbox Code Playgroud)
我写 null 来模拟在 DepositMoneyCommand 构造函数中的潜在回滚
@SagaEventHandler(associationProperty = "accountId")
public void handle(MoneyWithdrawnEvent event){
commandGateway.send(new DepositMoneyCommand(null,event.getTransactionId(),event.getAmount()));
}
@EndSaga
@SagaEventHandler(associationProperty = "accountId")
public void handle(MoneyDepositedEvent event){
logger.info("Saga End"); …Run Code Online (Sandbox Code Playgroud) 我更新了我的 Intellij Idea,当 ctrl+space 建议栏出现时,它变成了非常恶心的颜色,我想将其改回蓝色。谁能帮我在哪里可以改变颜色?