首页 > 解决方案 > 在 Camel REST DSL 中构建 HTTP 响应时避免超时

问题描述

我正在使用 Camel 的 REST DSL 来处理许多 REST 响应。典型的模式是这样的:

Message msg = exchange.getIn();
Thing athing = process();
msg.setBody(athing);
message.setHeader(Exchange.HTTP_RESPONSE_CODE, 200);

对于这些操作之一,process() 方法可能需要几分钟,这会导致客户端或中间代理超时(例如 504 错误),因为在给定时间内没有收到响应。在这种情况下,我无法轻松地流式传输“athing”对象 - 我必须等待它完全创建,然后才能使用它。

有没有一种简单的方法可以让响应保持活跃,而不必求助于重定向之类的东西?我只需要每隔几秒钟发送一些信息,说明我仍在处理它,以便保持连接。

标签: httpapache-camel

解决方案


推荐阅读