我想根据count从JMS MQ或In-memory消息存储中读取消息 就像我想在消息计数为10时开始阅读消息,直到我希望消息处理器处于空闲状态 我希望使用WSO2 ESB完成此任务 有人可以帮助我吗?
感谢。
答案 0 :(得分:1)
我不熟悉wso2,但从MQ的角度来看,执行此操作的方法是在队列中有10条消息后触发应用程序运行。有针对此的触发设置,特别是TRIGTYPE(DEPTH)
。
答案 1 :(得分:0)
为了扩展Morag的答案,我怀疑WS02是否有内置的触发器,可以在读取消息之前监视队列的深度。我怀疑它只是侦听队列并在消息到达时处理它们。我也怀疑你可以使用MQ的触发机制来根据深度方便地直接执行流程。因此,尽管触发是一个很好的答案,但您需要一些胶水代码来实现这一点。
方便的是,有一个教程提供了执行此操作所需的几乎所有信息。有关详细信息,请参阅Mission:Messaging: Easing administration and debugging with circular queues。该文章具有使Q程序与MQ触发一起工作所必需的脚本。你只需做一些改变:
不是向Q发送命令来删除消息,而是发送命令来移动它们。
抛弃计算要删除的邮件数量的数学运算,并将它们分批移动10次,否则移动所有邮件直到队列耗尽。在后一种情况下,请务必告诉Q等待任何落后者。
以下是完成时的样子:传入消息落在某个队列其他而不是WS02输入队列。该队列基于深度触发,以便Q程序(SupportPac MA01)将消息复制到真正的WS02输入队列。复制消息后,粘合代码将重置触发器。这种情况一直持续到队列中的消息少于10条为止,此时循环空闲。
答案 2 :(得分:0)
我通过将消息推送到数据库得到它并根据所需的计数得到,因为在我的回答中看看我的answer