我希望有一个MDB只有在达到两个独立状态后才会触发。例如:
发生事件A. 一段时间过去了 事件B发生 由于发生A和B事件,MDB onMessage被调用 A和B事件被清除
因此,例如,如果事件B发生但事件A尚未发生,那么我不希望触发onMessage。同样,如果事件A发生但事件B没有发生,我不希望激活onMessage。我还希望事件A和B相关,这样当onMessage被触发时,事件A和B被清除。
执行此操作的一种方法是让事件A生成一条消息,并且消息处理程序将检查事件B是否已经发生但是必须阻塞并循环直到事件B被触发。投票计划似乎效率低下。
从功能上来说,这就像一个CyclicBarrier,但是通过消息传递来实现。
有关MDB是否可以做出类似事情的想法?
答案 0 :(得分:1)
没有内置机制。我建议在数据库表中存储增量状态(在收到第一个事件时插入,在收到第二个事件时更新/删除)。
我绝对不会推荐民意调查;有太多可能出错的事情(挂起的服务器线程,浪费的CPU,事务超时等)。