我有一个主要方法,它顺序调用两个 Web 服务。第一个 Web 服务首先将数据插入到请求表中,该请求表具有使用休眠顺序生成的主键。该表还有一个状态字段,其初始状态为“已接收”。然后这是第一个 Web 服务,处理此请求,然后将状态更改为“已处理”。
现在主方法调用第二个 Web 服务来获取状态为“已处理”的请求。由于 main 方法的调用是顺序的,因此第二个 Web 服务调用中只能有一个状态为“已处理”的条目。在此之后,主方法休眠 5 秒并无限重复处理。此外,当我获取此记录时,我将状态更改为“已完成”。
此外,Web 服务正在远程访问数据库。数据还包含一个 requestId(这不是主键)。
所以问题是当这个过程持续 1 小时时,我发现我发送和接收的 requestId 存在一些不一致。这些 ID 不匹配。而且我可以看到有多个条目的状态仍然存在Processed
。我使用休眠 id 生成器作为增量,但是在多个集群中测试这个系统时,我遇到了 uniqueConstraint 异常。所以我开始使用序列生成器,现在面临这个问题。
提交后是否需要使用刷新?