RESTAPI-有序执行(Spring引导)

RESTAPI-有序执行(Spring引导),rest,spring-boot,concurrency,request,response,Rest,Spring Boot,Concurrency,Request,Response,我们正在用SpringBoot构建RESTAPI 我们有一个无法并行执行对象请求的场景。实际上,在后端,对于相同的对象,并行执行是不可能的 例如: Not supported in parallel Request 1 for action XYZ for object A Request 2 for action XYZ for object A Request 3 for action ABC for object A Supported in parallel

我们正在用SpringBoot构建RESTAPI

我们有一个无法并行执行对象请求的场景。实际上,在后端,对于相同的对象,并行执行是不可能的

例如:

Not supported in parallel
    Request 1 for action XYZ for object A
    Request 2 for action XYZ for object A
    Request 3 for action ABC for object A

Supported in parallel
    Request 1 for action XYZ for object A
    Request 2 for action XYZ for object B
    Request 3 for action ABC for object C
因此,我正在寻找实现这一情景的最佳可能方式。我看到的一个主要缺点是它不会使rest应用程序保持无状态

我可以考虑通过创建一个集合来跟踪已经存在的对象条目。如果是,则不接受该对象的请求。但有了这一点,我将不得不拒绝类似的请求

我不必拒绝请求的另一个选项是维护一个队列,在该队列中,我在某个对象中为同一个对象执行请求


但我能感觉到这不是正确的方法。所以,如果有人已经解决了类似的情况,请指导。

REST是无状态的,所以如果您仍然想做REST,您可以“接受”(202)一个请求,并异步而不是同步地处理它(“确定”,200)-在异步执行过程中,您可以使用队列或映射来防止对同一对象的多个请求,客户端可以稍后检查请求是否同时完成。@Smutje我面临的问题是,如果我使用队列,如何跟踪请求和相应的响应。出列器将出列并处理请求,但随后如何跟踪响应为每个请求生成UUID,并通过HTTP响应将其返回到原始请求线程(甚至生成要返回的URL),然后,客户端可以使用此UUID检查其原始请求。查找“相关ID”。