Публикация-подписка на сохранение / обновление объекта домена - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть объект, который говорит:

@Entity
@Table(name = "purchase_order")
public class PurchaseOrder implements Serializable, IBroadcastEntity {

    private Long id;
    private String sequenceNumber;

}

Мой пользовательский перехватчик -

@Component
public class CustomInterceptor extends EmptyInterceptor {

    @Override
    public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, org.hibernate.type.Type[] types) {
     if (entity instanceof IBroadcastEntity) {
           broadcastService.broadCastOrder((IBroadcastEntity) entity);
      }
}

@Override
    public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types) {


if (entity instanceof IBroadcastEntity) {
           broadcastService.broadCastOrder((IBroadcastEntity) entity);
      }
        return super.onFlushDirty(entity, id, currentState, previousState, propertyNames, types);
    }

Когда я вещаю, он снова и снова вызывает метод.

Но я хочу, чтобы у этой функции были включены функции тайм-аута.

например, если сообщение транслируется в последние 10 секунд, не транслируйте его снова.Через 10 секунд снова метод вещания.

Каковы наилучшие методы для достижения этой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...