Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何创建RESTAPI并为进程添加时间延迟?_Java_Multithreading_Rest_Threadpool - Fatal编程技术网

Java 如何创建RESTAPI并为进程添加时间延迟?

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

我对Springboot很陌生。我创建了以下RESTAPI。如果这个API同时接收多个请求,我希望它能够逐个处理,而不会丢失任何请求。如果有多个请求,我希望此服务呼叫延迟20秒

@RequestMapping({“/create”})
公共响应processCreation(@RequestBody(required=false)RequestDTO RequestDTO)引发异常{
响应=新响应();
response=interceptorService.interceptData(requestDTO);
返回响应;
}

我认为更好的方法是在代码级别处理这个用例(而不是通过一些springboot配置)

一旦有了请求,就获取所有相关参数并将它们添加到某种队列中。 您将拥有一个线程/线程池,它将从该队列中读取、处理请求并发送响应

请求线程除了将新任务调度到队列之外,什么也不做。处理将由专用线程池/线程进行


然后,您还可以添加您想要的20秒延迟。

您的问题非常不清楚,您希望以不同的方式实现什么?对于api调用来说,20秒是一个很大的间隔(即使是5秒),无论如何你都不会损失任何东西。@Aman,我希望收到的所有请求都在队列中,并逐一处理。我正在使用请求中的数据从我的应用程序调用另一个API。我想在20秒的时间间隔内调用另一个API。如果是这样,你应该有一种方法来维护列表(LinkedList或数据库可能是),然后使用每20秒运行一次的调度程序对其进行操作。你能帮我提供代码示例吗?