Я хотел бы иметь MDB, который срабатывает только после достижения двух независимых состояний. Например:
Событие А происходит
проходит некоторое время
Событие B происходит
MDB onMessage вызывается в результате возникновения событий A и B
События A и B очищены
Так, например, если событие B происходит, но событие A не произошло, то я не хочу, чтобы onMessage срабатывал. Точно так же, если событие A происходит, но событие B не произошло, я не хочу, чтобы onMessage запускалось. Я также хочу, чтобы события A и B коррелировались так, чтобы при запуске onMessage события A и B очищались.
Один из способов сделать это состоит в том, чтобы Событие A генерировало сообщение, и обработчик сообщения для этого проверял бы, произошло ли Событие B, но ему пришлось бы блокировать и выполнять цикл до тех пор, пока не сработало Событие B. Схема опроса кажется неэффективной.
Функционально это будет действовать как CyclicBarrier, но реализовано с обменом сообщениями.
Есть мысли, возможно ли что-то подобное с MDB?