Spring boot 暂停特定请求的骆驼路由
问题陈述:我有一个请求(有多个文件的元数据)。我已经按照下面的代码配置了驼峰路线Spring boot 暂停特定请求的骆驼路由,spring-boot,routes,apache-camel,Spring Boot,Routes,Apache Camel,问题陈述:我有一个请求(有多个文件的元数据)。我已经按照下面的代码配置了驼峰路线 @Override public void configure() { String sourceUri = getSourceUri(); String destinationUri = getDestinationUri(); onException(StopRouteException.class) .process(new StopRouteProcessor()) .log("Stop
@Override
public void configure() {
String sourceUri = getSourceUri();
String destinationUri = getDestinationUri();
onException(StopRouteException.class)
.process(new StopRouteProcessor())
.log("Stop Event processed for req id : " + reqId)
.end();
onException(Exception.class)
.process(new RouteExceptionProcessor())
.onRedelivery(new RouteRedeliveryProcessor())
.maximumRedeliveries(maxRetries)
.redeliveryDelay(retryDelay)
.handled(false)
.log("Error Occurred while moving file to path : " + destinationUri)
.end();
from(sourceUri)
.log("Transferring File from " + sourcePath + " to " + destinationUri)
.process(new PreMoveProcessor())
.to(destinationUri)
.process(new PostMoveProcessor())
.log("File Upload Success.");
}
在我的微服务中的某个地方,一个“停止”事件会听到。在此之后,它应该停止传输该特定请求的所有文件
在PreMoveProcessor中,我可以轮询停止事件并抛出StopRouteException,这将停止该文件的传输。但是,如果此请求中有多个文件,则这些文件将在此之后传输
我需要一种机制来停止传输特定请求的文件。我无法停止路由,因为将同时处理其他请求 我想象您正在使用拆分器拆分请求的元数据,然后将它们从(sourceUri)发送到
如果是这样的话,splitter有.stopOneException()子句,它可以满足您的需要。如果你不这样做,我建议你试试。在以下方面:
split(request.metadata).stopOnException()
.to(sourceUri)
不,我没有使用拆分器,因为它会使文件传输异步。我必须以同步方式传输特定请求的所有文件。默认情况下,拆分器不是异步的。如果启用.parallelprocessing(true),则为。您目前如何处理元数据并启动请求?