У меня есть объект, который говорит:
@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 секунд снова метод вещания.
Каковы наилучшие методы для достижения этой цели.