在Linux中使用普通文件实现持久性消息队列

时间:2012-08-13 10:45:28

标签: c linux

这里我想在C编程中实现持久性队列。 在这里,我希望将消息保存到持久性队列,然后我想发送它们。 如果我的嵌入式设备重新启动,然后再次启动,那么我也可以从待处理的持久性消息队列中发送消息。

任何人都可以知道我如何实现这个以及它将如何运作?

由于

3 个答案:

答案 0 :(得分:1)

将其存储在某个持久存储中。

告诉您的信息并不多。

答案 1 :(得分:0)

如果您希望它持久性,则必须将数据存储在硬盘驱动器上。我建议使用http://www.sqlite.org/。有许多语言的bindigs。

答案 2 :(得分:0)

持久性消息是一条不会丢失的消息,即使代理失败也是如此。

持久队列能够将消息写入磁盘,以便在系统关闭或发生故障时不会丢失。

现在,消息可以是持久性队列中的持久性或非持久性消息。

当发件人向代理发送持久性消息时,它会将其路由到收件人队列,并在确认向实际发件人传递之前等待将消息写入持久性存储。 如果队列不是持久的,则队列中的消息不会写入磁盘。 如果消息不是持久性的,则即使它位于持久队列中,也不会写入磁盘。

当接收队列从持久队列中读取消息时,在接收方确认该消息之前,它不会从队列中删除。

现在你必须设置一个日记机制,以便记录磁盘上的消息和代理的状态。然后你必须以正确的顺序管理消息和日志的缓存。

这是一个关于持久队列应该是什么以及如何编写一个队列的简单概念。 持久队列被许多专有软件系统使用,例如IBM WebSphere,RedHat的MRG等。请参考他们的更多想法。