将jms消息分组然后发送到下一个队列/批处理消息的侦听器

时间:2015-04-22 16:43:45

标签: grails jms

我需要实现一个接收多条消息的侦听器,然后根据某个条件对它们进行分组,然后将分组的消息发送到下一个队列。换句话说,以合理的方式对它们进行批处理。

我正在使用Grails和JMS集成插件。

在我看来,它可以在运行单个线程的侦听器中实现,该线程运行无限循环,永久消耗来自队列的消息,然后在那里执行分组逻辑。

Runnable runnable = new Runnable() {
   @Override
   public void run() {
      while(true) {
         def obj = consumer.receive()
         //group the messages and store on a list then send them in groups to the next queue
         producer.send(groupedObjList)
      }
   }
}
def thread = new Thread(runnable);
thread.start();

我不确定这是否是一种干净的方式。所以我正在寻找如何实现这一目标的替代方案。

0 个答案:

没有答案