我的要求是一个接一个地以串行方式处理(调用Webservice)消息列表。如果第一条消息成功,则仅处理第二条消息,依此类推。
我在这里使用Splitter来分割消息。在Splitter里面我使用了Delayer(不是持久性)。
问题是第一条消息进入延迟,列表开始处理中的第二条消息,而不等待第一条消息完成。
我相信这种情况正在发生,因为delayer并没有阻止线程。
是否可以通过使用Splitter和delayer来实现此功能?
答案 0 :(得分:1)
延迟器是这样设计的;它会在将来的某个时间安排要处理的消息。如果您只是想降低处理拆分的速度;只需添加一个具有Thread.sleep(...)
的POJO服务(由服务激活器调用)并返回输入消息。
public Message<?> sleeper(Message<?>) throws InterruptedException {
Thread.sleep(1000);
}