【发布时间】:2010-12-15 11:47:21
【问题描述】:
我想知道 System-V 消息队列的限制是什么,即最大队列大小、每个项目的最大大小等。
由于我正在将 C++ 与我的 PHP 脚本集成,并且有大量数据将从 php 推送到队列中,C++ 进程将在另一端读取该数据。 我设计了一个策略,其中我有 2 种类型的消息将由 php 编写。
1) Message length
2) Message data
但是,我在负责读取长度/数据序列的 C++ 应用程序中面临不可预测的行为。
首先,我无法从 php 中为每个 msg_send 写入超过 6000 个字节,这就是为什么我必须将我的消息分成由完整消息大小引导的块。所以我的队列看起来像这样(括号中的 msgtype)
大小(1) + 块(2) + 块(2) + 块(2) + 大小(1) + 大小(1) + 块(2) + 块(2)
虽然,我能够正确读取一些块,但在某个地方的中间我开始收到接收错误并将一些消息留在队列中并使队列变得无用。
【问题讨论】:
标签: php c++ unix message-queue