当前位置: 首页 > 知识库问答 >
问题:

ApacheCamel在Spring Boot中-请求时队列轮询消费者

东郭元魁
2023-03-14

我正在努力寻找一个成熟的例子,说明如何在Spring Boot框架中使用ApacheCamel进行轮询。

我已经看过了:https://camel.apache.org/manual/latest/polling-consumer.html除此之外:https://camel.apache.org/components/latest/timer-component.html但是代码示例不够广泛,我无法理解用Java完成任务需要做什么。

我通常是一名C#开发人员,所以很多这些小的引用都没有意义。

我正在寻找一个在Java中执行以下操作的示例,其中包括所有导入和使其工作所需的其他依赖项。

我想做的是以下几点

  • 向endpoint发出web请求,这将触发轮询消费者的开始

我想知道这是否可能,如果可能,您能否提供一个实现这一点所需的所有内容的小示例(因为来自Camel网站的文档在导入和类结构等方面非常稀少)?

共有1个答案

仲孙小云
2023-03-14

在与一些Java同事讨论之后,他们向我保证,这个用例并不是为Camel设计的。这就是为什么在我发布这个问题之前,在互联网上很难找到任何东西的原因。

对于那些通过谷歌寻求答案的人来说,最好的建议是使用不同的工具或者只使用标准的java。

在我的例子中,我最终使用普通的Java线程来实现所需的功能。一旦收到请求,我只需启动一个新的可运行线程,该线程处理来自其他服务的结果检查,HibernateX秒,并在响应成功时终止。

下面是一个简单的例子:

Runnable runner = new Runnable() {
    @Override
    public void run() {
        boolean cont = true;
        while (cont) {
           cont = getResponseFromServer();
           try {
              Thread.sleep(5000);
           } catch (Exception e) {
              // we don't care about this, it just means this time it didn't sleep
           }
        }
    }
}
new Thread(runner).start();
 类似资料:
  • 我有一个restendpoint示例。org,返回表单的json响应 我的路线是这样的 我读过关于轮询消费者的内容,但找不到如何继续轮询endpoint的示例,直到它返回“success”响应。 是否应该使用轮询消费者?如果是这样的话,可以举一个与我的案例相关的例子。用于轮询restendpoint的任何其他资源都非常有用。

  • 需求:构建一个基于。NET的应用程序,该应用程序可以定期从IBM Websphere消息队列读取消息,并将这些消息保存到数据库中

  • 我是Apache Camel的新手,我试图在一个简单的项目中理解和使用轮询消费者EIP,但我感到有点迷茫…谁能帮我解释一下,甚至用一个小的工作例子。 如有任何帮助,我们将不胜感激

  • 我有一个Kafka主题,并为其附加了1个消费者(主题只有1个分区)。现在对于超时,我使用默认值(心跳:3秒,会话超时:10秒,轮询超时:5分钟)。 根据留档,轮询超时定义消费者必须在其他代理将该消费者从消费者组中删除之前处理消息。现在假设,消费者只需1分钟即可完成处理消息。 现在我有两个问题

  • 我是一个新手,但我真的很喜欢长轮询的想法。 在阅读了它之后,我会这样实现它: 客户端请求服务器(AJAX) 服务器正在轮询DB以获取更改 识别更改时或服务器响应超时后 我的问题是,对于每一个请求,都在服务器上启动一个线程,并且每个线程都轮询DB。 在服务器上运行一个接受所有传入请求的线程不是更有效吗?例如: 客户端请求服务器(AJAX) 服务器将请求添加到队列(无响应) 辅助线程轮询数据库以获取与

  • 我有一个Kafka消费者,其中消息通过HTTP POST调用传递给另一个应用程序。我还使用手动提交偏移量 确认。确认(); 有一些HTTP返回错误代码,我们忽略错误并提交偏移量,还有一些错误代码我们不提交偏移量。问题是,kafka使用者仅在我重新启动使用者时才轮询未提交的消息。如果分区中有未提交的消息,是否还有轮询消息的地方?