我有一个方法在锁定(ReentrantLock)这种方法发送一些消息到服务器,立即接收响应和创建/保存数据库中的数据。 此响应具有发送消息的标识。客户端有一个正在等待服务器报告的侦听器(这个报告可以在数据发送到服务器之后返回),服务器也可以返回某种报告(带有id和一些状态),并且我需要将该报告(通过id)映射到该记录的先前保存的记录和更改状态字段。不同线程之间的数据共享
问题是这个报告可以更快地返回(并且侦听器会抓住它并尝试处理),那么来自第一个方法的消息被保存在数据库中。 解决这个问题的方法是什么?
我曾想过在数据库中创建附加表并将消息中的数据保存在一个表中,并将数据从报告保存到其他表中。然后通过其他进程同步它们,但是也许可以创建一些缓冲区/队列,其中消息ID将从第一个方法存储,并且当我们接收到报告时,我们将检查该缓冲区/队列是否存在相应的消息ID,如果我们发现该消息编号,那么报告监听器将继续它的工作?