Events 数据获取过期时间时将事件发布到RabbitMQ

Events 数据获取过期时间时将事件发布到RabbitMQ,events,architecture,rabbitmq,microservices,Events,Architecture,Rabbitmq,Microservices,我目前使用的是事件驱动架构。我们的数据库中有一些过期的数据。在事件(数据过期)达到过期时间的同时发布该事件(数据过期)的最佳解决方案是什么?我希望实时执行该操作,而不是执行调度程序进程或批处理。我认为要实现这一点,您需要DB具有某种机制来支持该操作。我现在想不出有什么(更不用说不知道是哪个数据库了) 但从我的头脑中,我可以说:如果在插入DB之后,过期日期从未被修改,那么您可以在将数据插入DB的同时在RabbitMQ中插入一条消息。您可以在消息中设置TTL,并在该队列中配置死信。这样,当消息过期时

我目前使用的是事件驱动架构。我们的数据库中有一些过期的数据。在事件(数据过期)达到过期时间的同时发布该事件(数据过期)的最佳解决方案是什么?我希望实时执行该操作,而不是执行调度程序进程或批处理。

我认为要实现这一点,您需要DB具有某种机制来支持该操作。我现在想不出有什么(更不用说不知道是哪个数据库了)

但从我的头脑中,我可以说:如果在插入DB之后,过期日期从未被修改,那么您可以在将数据插入DB的同时在RabbitMQ中插入一条消息。您可以在消息中设置TTL,并在该队列中配置死信。这样,当消息过期时,它会自动发布到另一个exchange


您可以在此处阅读更多内容:

我无法获取过期时间。你能举例说明吗?我不确定你想要什么,但据我所知,你可以存储过期日期时间,然后编写一个程序来触发事件(如果是日期时间)。现在匹配过期时间谢谢Lucas,这太棒了。这正是我想要的。我不确定这个解决方案,因为我必须在做出决定之前检查状态,但我会在使用新的exchange之后进行检查。很高兴提供帮助:)请注意此处列出的注意事项:,如果在同一队列中混合使用不同TTL的邮件(尽管文档不完全清楚),可能会出现一些问题。为了避免这种情况,我为每个不同的TTL创建了不同的队列(因为我只有两个),但这可能不是您的解决方案。