Мне интересно, каковы ограничения очереди сообщений 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)
Хотя я могу правильно прочитать несколько чанков, но где-то в середине я начинаю получать сообщение об ошибке и оставляю некоторые сообщения в очереди, делая их просто бесполезными.