#php #rabbitmq
#php #rabbitmq
Вопрос:
У меня есть особая проблема в rabbitmq с использованием php-amqplib, где consumer.php не использует обновленную кодовую базу и вместо этого использует старый код.
Есть ли в rabbitmq что-то похожее на команду прослушивания laravel? очередь php artisan: прослушивание https://laravel.com/docs/8.x/queues#running-the-queue-worker
Если нет, можете ли вы предложить какие-либо альтернативы для моего использования?
Ответ №1:
Здесь вы путаете обязанности разных частей программного обеспечения:
- RabbitMQ не знает и не заботится о том, что вы даже используете PHP
- php-amqplib не волнует, какой PHP вы используете, он просто доставляет сообщения на указанный вами обратный вызов
- команда Laravel, которую вы связали, построена поверх этих технологий, а не вместо них; в документации, которую вы связали, также явно указано, что она не будет отслеживать изменения в вашем развернутом коде
Сценарий пользователя обычно представляет собой фрагмент PHP-кода, содержащий бесконечный цикл; общий подход к запуску и перезапуску этого:
- Используйте что-то вроде Supervisor, чтобы перезапустить его при выходе
- Включите соответствующий код для выхода из бесконечного цикла и, таким образом, завершите работу скрипта чисто при развертывании вашего кода
Реализация Laravel — это queue:restart
команда, так что вы можете посмотреть, как это написано для вдохновения.