I am trying to implement request timeout in Springboot Mongodb application. The flow is like this.Send startCctv request to server. The server starts the cctv and update the database field "Status" to true. Then i will call one more api say getCctvStatus() to poll the DB and check for the status field every minute. If this field is not updated to true within 10 minutes, the original request startCctv should be cancelled or timedout.
Here is the skeleton code:
//Controller class
@PostMapping("/startCctv.on/{id}")
public ResponseEntity startCctv(@PathVariable String cctvId){
//call to service class
startCctv(cctvId);
}
//Service class
public void startCctv(String cctvId) {
sendReqToMainServer(cctvId);
// main server starts the cctv for the given cctvId and updates the database field "status" to true.
}
//API to check the DB "status" field. The below api should poll the DB and check the "status"
// field every minute.
public boolean checkCctvStatus(String cctvId) {
//DB query to get the status of cctv
return cctvRepository.getCctvStatus(cctvId);
}
//If the status is not updated to true within 10 minutes, cancel the original request
// ie startCctv and send message to the client/user as request timed out.
Can anyone help me to achieve this !?
Thanks in advance!!!
question from:
https://stackoverflow.com/questions/65641310/springboot-rest-api-request-timeout-or-cancel-if-the-request-is-not-processed-in 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…