重复执行事件处理程序

时间:2018-12-07 13:57:04

标签: java spring spring-data-jpa spring-data

上下文:我的应用程序使用一个存储库来存储历史记录,使用另一个存储库来存储当前情况快照。当历史记录存储库中发生更改时,我也希望更新快照,并且为此使用了自定义事件处理程序。

问题:此类事件处理程序被执行两次。

我认为是原因:处理程序在另一个存储库中运行,而它们触发了相同的事件。

我虽然只从一个存储库中监听事件,但是我不知道该怎么做,也不知道前面提到的是重复执行的原因。

代码段包含处理程序:

@HandleAfterCreate
public void handleAfterCreateOrUpdate( Subscription subscription ) {
    snapshotRepository
        .getMapCache( subscriptionsMapName )
        .fastPut( subscription.getIdentifier(), subscription );
}

@HandleAfterDelete
public void handleAfterDelete( Subscription subscription ) {
    snapshotRepository
        .getMapCache( subscriptionsMapName )
        .fastRemove( subscription.getIdentifier() );
}

0 个答案:

没有答案