我得到了Service1,Service2以及通过Kafka进行通信的这些服务。当我从Service1向Service2发送请求时,我需要确保在10秒内Service1必须收到Service2的响应。如果不是这样,我需要在Service1上将请求状态更新为“超时”。
我需要每秒发送数百个请求,并且我认为每个请求都不启动预定任务是一种有效的方法。还有其他方法可以处理超时情况吗?
void sendRequestToKafka(){
//Send request to Kafka
Runnable checkRequestCompleted = () -> {
//Check request has a response from database
//If not update request status to timeout
};
ScheduledExecutorService executorService= Executors.newScheduledThreadPool(4);
executorService.schedule(checkRequestCompleted, 10, TimeUnit.SECONDS);
}
数据库架构;
id|request|response|status(started, timeout, completed)