gpt4 book ai didi

java - Camel 每小时消耗不超过 1 条消息?

转载 作者:行者123 更新时间:2023-12-02 06:37:57 27 4
gpt4 key购买 nike

我对 Camel 有点陌生,所以如果这是一个愚蠢的问题,请原谅我!

在 Camel 中,我有一个与队列 queue-1 竞争的消费者列表。我希望每个消费者在尝试读取队列之间等待 1 小时,但是一旦过了一个小时,每个消费者就应该不断轮询,直到收到消息。一旦收到消息,它应该对其进行处理,然后等待一个小时,然后再尝试另一次读取,依此类推。

这是我设置的路线:

from("aws-sqs://queue-1?accessKey=ABC&secretKey=XYZ&maxMessagesPerPoll=1")
.unmarshal().base64()
.unmarshal().serialization()
.throttle(1)
.timePeriodMillis(TimeUnit.HOUR.toMillis(1))
.bean(new ProcessorBean())
.marshal().serialization()
.marshal().base64()
.to("aws-sqs://queue-2?accessKey=ABC&secretKey=XYZ");

据我了解,路由是同步执行的( specific components designed to work asynchronously 除外)。基于这样的理解,我相信这条路线满足了这些要求。

这能达到我想要的效果吗?为什么或为什么不?

最佳答案

您的路线将消耗队列中的一条消息,然后等待一小时。

如果您想等待一个小时然后阅读消息,请查看 ScheduledPollConsumer 选项 (Doc)有些选项允许使用调度程序,例如 Quartz2或基于 Spring 的调度程序。

使用log如果您想确定的话,请使用组件:.to("log:com.mycompany.order?level=DEBUG")

关于java - Camel 每小时消耗不超过 1 条消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19454043/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com