是否提升消息队列文件级别持久性?

时间:2014-07-09 04:39:13

标签: c++ c++11 boost

是否提升消息队列文件级别持久性?

在boost IPC文档中提到Message Queues是文件级或内核级持久性。

http://www.boost.org/doc/libs/1_38_0/doc/html/interprocess/some_basic_explanations.html

所以我的问题是,如果我们重新启动,文件级别的持久性意味着可以在重启中存活或者在内存中持续存在。

如果默认情况下它们是内核级持久性,我们如何才能使它们成为文件级持久性?

编辑:当我退出系统并再次登录队列时,工作正常但是当我重新启动系统队列已删除时,我正在使用Ubunutu并希望实现队列可以在服务器崩溃中幸存下来我该怎么办?

1 个答案:

答案 0 :(得分:1)

正如文档解释的那样,区别是依赖于实现的。

某些平台将具有内核支持(因此,对于共享IPC对象,“内核级持久性”),有些则不会:

  

如您所见,Boost.Interprocess定义了一些具有“内核或文件系统”持久性的机制。这是因为POSIX允许本机进程间通信实现的这种可能性。例如,可以使用内存映射文件实现共享内存并获取文件系统持久性(例如,没有适当的已知方法使用本机共享内存为Windows共享内存模拟内核持久性,或者为POSIX共享进程持久性内存,所以唯一可移植的方法是定义“内核或文件系统”持久性)。

你可以切换的东西。

更重要的是,它可能不是你所追求的(持久性是关于对象的生命周期,而不是关于消息,AFAICT)