Spring boot 一次只允许路由的一个实例

Spring boot 一次只允许路由的一个实例,spring-boot,apache-camel,Spring Boot,Apache Camel,我有一个控制器: @GetMapping("/startRoute") @ApiOperation(value = "startDRoute", response = ResponseEntity.class) public ResponseEntity<BaseResponse<Boolean>> startRoute() { logger.inf

我有一个控制器:

 @GetMapping("/startRoute")
    @ApiOperation(value = "startDRoute",
           
            response = ResponseEntity.class)
    public ResponseEntity<BaseResponse<Boolean>> startRoute() {

        logger.info("ReconciliationController - startDaily called");

        ReconciliationBatchRequest reconciliationBatchRequest = new ReconciliationBatchRequest();

        reconciliationBatchRequest.setDocumentTypeOfJob(0L);//hardcoded change

        producerTemplate
                .asyncSendBody(DOCUMENT_RECONCILIATION_ROUTE_START,
                         reconciliationBatchRequest);

        logger.info("ReconciliationController - startDaily ended");

        return ResponseEntity.ok(new BaseResponse<>(true));
    }
因为它来自控制器异步,所以可以多次调用。但是我不想要这个。如果只有一条运行路线,则不应工作

我创建此选项是为了在有活动路线时停止:

@GetMapping("/stop")
@ApiOperation(value = "stop",
        notes = "For stopping reconciliation",
        response = ResponseEntity.class)
public ResponseEntity<String> stop() throws Exception {

    logger.info("ReconciliationController - stop called");

    camelContext.stopRoute("reconciliationCamelRoute");

    logger.info("ReconciliationController - stop ended");

    return ResponseEntity.ok("ok");
}
我怎样才能使只有一个实例工作,甚至有多个人调用该控制器endpoind

我试过这个:

 boolean isRouteStarted =
((org.apache.camel.support.ServiceSupport)route).isStarted();
但这安全吗

Starting to graceful shutdown 1 routes (timeout 300 seconds)
 boolean isRouteStarted =
((org.apache.camel.support.ServiceSupport)route).isStarted();