我们将微服务公开为Rest API。一个端点的工作是调用一种服务,该服务将从具有属性值Created
的数据库中获取记录,然后对其进行处理。处理完成后,这些记录将以属性值Ready
更新。这样做是为了在下次调用此API时,不会选择相同的记录进行处理。
问题:处理期间执行的操作不是幂等的。因此,如果客户端在先前的处理完成之前调用此API,它将再次选择正在处理的相同记录并导致问题。此外,完成所有这些处理的服务方法也是@Async
方法,进一步增加了复杂性。
如果之前的处理尚未完成,有什么办法可以避免调用service方法?