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),则为。您目前如何处理元数据并启动请求?