我的一所大学找到了解决方案。 目前,我们在一个数据库表中实现了队列,其中包含以下数据:msg_type,msg_key(这是我们需要唯一的业务键),msg_body,status,request_time,processed_time,retry_count和error_code。
我的想法如下:此表仍将仅用于重复数据删除和队列管理器,仅用于排队(无重复数据删除功能)。
所以我们将从表中删除不必要的数据。剩余的字段是:msg_type和msg_key。
算法:
我们的服务收到请求
检查表中是否使用业务键重复了消息。如果是,则引发异常。
将消息放入队列并将新消息密钥放入表中
这只是一个想法。它尚未实施。很可能这个简单的模型需要一些修复。