Java 如何创建RESTAPI并为进程添加时间延迟?
我对Springboot很陌生。我创建了以下RESTAPI。如果这个API同时接收多个请求,我希望它能够逐个处理,而不会丢失任何请求。如果有多个请求,我希望此服务呼叫延迟20秒Java 如何创建RESTAPI并为进程添加时间延迟?,java,multithreading,rest,threadpool,Java,Multithreading,Rest,Threadpool,我对Springboot很陌生。我创建了以下RESTAPI。如果这个API同时接收多个请求,我希望它能够逐个处理,而不会丢失任何请求。如果有多个请求,我希望此服务呼叫延迟20秒 @RequestMapping({“/create”}) 公共响应processCreation(@RequestBody(required=false)RequestDTO RequestDTO)引发异常{ 响应=新响应(); response=interceptorService.interceptData(requ
@RequestMapping({“/create”})
公共响应processCreation(@RequestBody(required=false)RequestDTO RequestDTO)引发异常{
响应=新响应();
response=interceptorService.interceptData(requestDTO);
返回响应;
}
我认为更好的方法是在代码级别处理这个用例(而不是通过一些springboot配置)
一旦有了请求,就获取所有相关参数并将它们添加到某种队列中。
您将拥有一个线程/线程池,它将从该队列中读取、处理请求并发送响应
请求线程除了将新任务调度到队列之外,什么也不做。处理将由专用线程池/线程进行
然后,您还可以添加您想要的20秒延迟。您的问题非常不清楚,您希望以不同的方式实现什么?对于api调用来说,20秒是一个很大的间隔(即使是5秒),无论如何你都不会损失任何东西。@Aman,我希望收到的所有请求都在队列中,并逐一处理。我正在使用请求中的数据从我的应用程序调用另一个API。我想在20秒的时间间隔内调用另一个API。如果是这样,你应该有一种方法来维护列表(LinkedList或数据库可能是),然后使用每20秒运行一次的调度程序对其进行操作。你能帮我提供代码示例吗?