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();