Symfony messenger (doctrine) не успевает обработать очередь? Кролик успеет?
Настроил очередь используя Doctrine - Symfony messenger не успевает обработать очередь. Попробовал увеличить numprocs - думал параллельный запуск ускорит обработку. Но это кажется вообще не влияет на скорость обработки очереди. Прирост незначительный.
В документации кажется нет ничего про рапаралеливание console messenger:consume и как ускорить или понять, почему очередь не успевает с Doctrine я не знаю как проверить.
Вопрос в том, что если я переключу очередь с Doctrine на RabbitMQ - это поможет?
Надо сомтреть на состояние БД
Но я вам скажу — мы столкнулись с тем же ровно на том, что и с кроликом очереди скребут потолок... Хотя оптимизировали одно горлышко за другим...
Например от ORM ушли к чистым запросам, построили работу с данными так, чтобы они были или предагрегированными или для работы нужно меньше запросов, настроили число консюмеров (у нас не мессенджер) и все равно со временем скребем потолок... будет на golang уходить
Максим Федоров, фактически принципиальной разницы между очередями в Doctrine и RabbitMQ вы считаете что нету? То что оно например у меня не успевает, то вероятнее это не из-за брокера, а именно обработчик не успевает выполнить?
numprocs - это же про supervisord?
У меня была ситуация, когда на старых версиях supervisord это не генерировало новые процессы почему-то.
Ну и не забудьте указать process_name = %(program_name)s_%(process_num)02d
Проверьте что все процессы есть в ps aux
BoShurik, Да. После правки конфига недостаточно restart - нужно команды отдельные reread + update - он мне создает столько процессов сколько указано. Но это пока никак не помогает. Сегодня попробую RabbitMQ запустить. Если он не поможет, значит в коде проблема...
так сколько рабочих запустите, столько и будет трудиться. Один раз запускали – единственный воркер. Вполне себе мог и не справляться.
Из вопроса не ясно, какой у вас транспорт использовался для очереди. Тот же Rabbit там можно прикрутить через AMPQ. Но скорее всего узкое место – единственный слабый обработчик.