System-V очередь сообщений PHP C ++ - PullRequest
1 голос
/ 11 ноября 2009

Мне интересно, каковы ограничения очереди сообщений System-V, т. Е. Максимальный размер очереди, максимальный размер на элемент и т. Д.

Поскольку я работаю над интеграцией C ++ с моими PHP-скриптами, и у меня очень большой объем данных, которые будут помещены в очередь из php, и процесс C ++ будет читать эти данные на другом конце. Я разработал стратегию, в которой у меня есть 2 типа сообщений, которые будут написаны php.

1) Message length
2) Message data

Но я столкнулся с непредсказуемым поведением в моем приложении C ++, которое отвечает за длину чтения / последовательность данных.

Во-первых, я не могу записать более 6000 байт на msg_send из php, поэтому мне пришлось разбить мое сообщение на куски, ведущие по полному размеру сообщения. поэтому моя очередь будет выглядеть примерно так (msgtype в скобках)

Размер (1) + Кусок (2) + Кусок (2) + Кусок (2) + Размер (1) + Размер (1) + Кусок (2) + Кусок (2)

Хотя я могу правильно прочитать несколько чанков, но где-то в середине я начинаю получать сообщение об ошибке и оставляю некоторые сообщения в очереди, делая их просто бесполезными.

1 Ответ

1 голос
/ 11 ноября 2009

Ограничения зависят от вашей платформы, версии ОС и параметров ядра. Вы должны обратиться к документации вашей системы. Например, вы можете получить некоторую информацию из msgctl () в Linux.

...