[英]How to transfer messages, each at a specific time?
我在 CSV 文件中有大约 10K 条消息。 每条消息都有一个关联的时间戳。 到达时间后,我希望将消息传送到 MQ。 时间戳不是均匀分布的。 这可能与 Apache 骆驼有关吗?
据我所知 Apache 默认情况下,Camel 没有可以配置为在指定时间触发特定消息的消费者端点组件。
但是,您可以设置一个定时器组件,例如每秒触发一次。 然后在路由中,您可以使用处理器来检查列表是否包含任何应在给定时间发送的消息并将它们发送到 MQ。
您还可以使用可以使用 CamelContext 创建的 ProducerTemplate 从 java 代码触发路由。
该列表可以使用您的 csv 文件填充并按时间戳排序,因此您可以像堆栈一样使用它并且只检查前几个条目而不是每秒检查所有 10K。
这里真正的问题是持久性,即如果在发送所有 10K 消息之前应用程序关闭,则找出 csv 上列出的哪些消息已经发送。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.