Приостановить верблюжий маршрут для конкретного c запроса - PullRequest
0 голосов
/ 07 января 2020

Постановка проблемы: у меня есть запрос (с метаданными нескольких файлов). Я настроил верблюжий маршрут согласно приведенному ниже коду.

@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, которое остановит передачу этого файла. Но если в этом запросе несколько файлов, они будут переданы после этого.

Мне нужен механизм, чтобы остановить передачу файлов определенного запроса. Я не могу остановить маршрут, так как в это же время будут обрабатываться другие запросы.

1 Ответ

0 голосов
/ 07 января 2020

Я полагаю, вы используете разделитель для разделения метаданных запроса, а затем отправляете их в from(sourceUri)?

Если это так, разделитель имеет предложение .stopOnException (), которое выполняет то, что вы хотите. Если вы не делаете это таким образом, я рекомендую попробовать. Что-то на пути:

split(request.metadata).stopOnException()
     .to(sourceUri)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...