RabbitMQ: как правильно выполнять тяжелые задачи?
Сам консюмер не должен обрабатывать задачи. Его основное назначение - разгрузить очередь и отправить задачи дальше, например в базу данных или на другие сервера через балансировщик. Лучше всего первый способ.
Далее некий воркер смотрит необработанные задачи в базе данных и неспеша их обрабатывает. Обработанные задачи помечает флагом.
php-amqplib тормозной, лучше расширение amqp из pecl