Добрый день!
Вкратце опишу суть задачи. Пользователи Авито отправляют сообщения в мессенджере, а к моему приложению приходят вебхуки (1 вебхук = 1 сообщение). Нужно выводить эти сообщения в crm, сохраняя очередность. Но, если это новый чат, то перед выводом сообщений необходимо сделать несколько запросов к апи crm для создания сущностей. А что делать, если во время обработки первого сообщения придет еще несколько сообщений? Складывать их в какое-то хранилище и после манипуляций с апи crm обрабатывать или есть более подходящие решение?
kategg, одна комната - одна очередь. Одна очередь - один процесс, т.е. по завершении инициализации обрабатывать сразу все сообщения. Если в очереди слишком много сообщений - забирать из очереди сообщения пачками. Например, если в очереди 100к сообщений - брать по 1к сообщений, обработать их, повторить пока в очереди есть сообщения. Сергей delphinpro, отдельные временные метки не нужны - очередь уже упорядоченный объект.
Нет. Очередь - это тупо список. В памяти хранится только адрес его начала - 8 байт для х64 приложений и 4 байта для х32 приложений. Ну и сколько-то там байт какой-нибудь там индентификатор очереди для внешних приложений. Причем, очередь вам понадобится только на время, пока проходит требуемая вам инициализация - инициализация прошла, очередь обработалась и уничтожилась. Все дальнейшие сообщения обрабатываются на общих условиях или в общей очереди, если у вас там все равно балансировка есть.