Интерфейс очереди POSIX, как вы заметили, не позволяет запрашивать размер сообщения.
В результате, следовательно, все сообщения могут иметь максимальный размер, настроенный определением очереди,и вы должны предположить, что упрощенная реализация вполне могла бы использовать это для простоты ведения записей.
Учитывая, что вы имеете дело с многомегабайтными сообщениями, как, скажем, вы помещаете эти сообщения в очередь маловероятнобыть хорошим решением (к сожалению).
Если ваша скорость сообщений низкая (до некоторого определения low ) и у вас действительно есть разумная верхняя граница, тогда просто попробуйте и попробуйтеit out.
За исключением этого, вашей следующей лучшей ставкой было бы использовать очередь как очередь рабочих заданий, а не как очередь рабочих элементов.Ваши рабочие элементы должны храниться по-разному, возможно, в файлах.Затем в очереди у вас есть хорошее короткое имя файла, указывающее на расположение рабочего элемента, о котором нужно позаботиться.
Удачи