2012-08-13 30 views
0

这里我想在C编程中实现持久性队列。 在这里我想保存消息到持久队列,然后我想发送它们。 如果我的嵌入式设备重新启动,然后再次启动,然后我也可以从持久性消息队列中发送正在等待的消息。在Linux中使用纯文本实现持久性消息队列

任何人都可以有一些想法如何我可以实现这一点,以及它将如何工作?

谢谢

回答

1

将其存储在某些永久存储上。

没有太多的事情要告诉你你提供的信息。

+0

我可以使用一些纯文件存储做这个事情吗? – user1089679 2012-08-13 11:01:35

+0

@ user1089679你还想使用什么?当然,如果你需要某种事务逻辑,并且你不想自己实现,你可以获取一些简单的数据库。 – 2012-08-13 11:05:18

+0

C中的数据库如何在C程序中包含数据库。我可以用文件做。不是sqllite。 – user1089679 2012-08-13 12:03:43

0

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

0

持久性消息是即使代理失败也不能丢失的消息。

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

现在,消息可以是持久或非持久,通过持久队列传播。

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

当接收者队列从持久队列中读取消息时,它不会从队列中删除,直到接收者确认消息。

现在你必须加入日志记录机制,以保持磁盘上的消息和代理的状态记录。然后你必须按照正确的顺序管理消息和日志的缓存。

这是一个简单的想法,说明一个持久队列应该是什么以及如何写一个。 持久性队列被诸如IBM WebSphere,RedHat的MRG等专有软件系统所使用。引荐他们更多的想法。