需要骆驼路线的设计理念

时间:2021-07-01 18:45:58

标签: spring-boot timer routes apache-camel scheduler

我遇到了定时器或调度程序需要每 30 分钟唤醒一次的情况 唤醒后,它需要运行查询并通过查询获取队列名称,最大队列为 24,但一次只有 4 到 5 个队列处于忙碌状态。所以它只需要连接到这 4 或 5 个队列并根据 Header 中获得的相关性 id 获取记录更新状态,然后关闭已完成的路由并再次重新启动该过程。 目前我已经使用 for 循环从所有队列中循环并发送到“direct:syncQueues” 另一个从 "direct:syncQueues" 读取并更新 Database 的路由。 我该如何设计这样的路线 我已经通过一个组件尝试了 Spring @Scheduler,但不知道如何从 Scheduler 调用这个路由。我还需要确定如何关闭那些打开的路线。

我目前的实现是这样的 @覆盖 public void configure() 抛出异常 {

List<String> sources messagepubservice.getSourceQNames();

for(String uri: sources){
from(uri).process(exchange -> {
ThreaqdContext.pout(ApplicationInfo.TRACE_ID,exchange.getExchangeId());
}).log(LoggingLevel.INFO, "Direct Sync Queues", "MQ Message(publishOutboundMessage) received:${body}").to("direct:syncQueues");
}

from("direct:syncQueues").process(exchange->{

///do the processing and store to DB by getting values from Header and body


}
}

0 个答案:

没有答案