在这里,我想在 C 编程中实现持久队列。在这里,我想将消息保存到持久队列,然后我想发送它们。如果我的嵌入式设备重新启动并且何时再次启动,那么我也可以从待处理的持久性消息队列中发送消息。
任何人都可以知道我如何实现这一点以及它将如何工作?
谢谢
将其存储在一些持久性存储中。
对于您提供的信息,没有什么可以告诉您的了。
持久消息是不能丢失的消息,即使代理失败。
持久队列能够将消息写入磁盘,以便在系统关闭或故障时不会丢失。
现在,消息可以是持久的或非持久的,通过持久队列传播。
当发送者向代理发送持久消息时,它会将其路由到接收队列并等待消息写入持久存储,然后再确认传递给实际发送者。如果队列不是持久的,则队列上的消息不会写入磁盘。如果消息不是持久的,即使它在持久队列上,它也不会写入磁盘。
当接收方队列从持久队列中读取消息时,在接收方确认消息之前,不会将其从队列中删除。
现在你必须放入一个日志机制,记录消息和代理在磁盘上的状态。然后你必须以正确的顺序管理消息和日志的缓存。
这是一个关于持久队列应该是什么以及如何编写的简单想法。持久队列被许多专有软件系统使用,如 IBM WebSphere、RedHat 的 MRG 等。请参考他们以获得更多想法。
如果您希望它持久,则必须将数据存储在硬盘上。我建议使用http://www.sqlite.org/。许多语言都有绑定。