yii2-queue
yii2-queue copied to clipboard
AMQP keepalive support
Q | A |
---|---|
Is bugfix? | no |
New feature? | yes |
Breaks BC? | no |
Tests pass? | yes |
Fixed issues |
Если перед кластером rabbitmq стоит балансер (у нас это yandex cloud load balancer) то периодически consumers завершались с ошибкой "Connection timed out". Активация heartbeat режима, без переписывания обработчиков не поможет https://github.com/php-amqplib/RabbitMqBundle/issues/301
Нам помогло включение режима keepalive на стороне consumers.
Для возможности включения режима keepalive через конфиг и был создан данный PR
https://travis-ci.com/github/yiisoft/yii2-queue/jobs/300286412 that's interesting... likely not related to pull request but can't merge without this error fixed :(
Any idea about these random failures?
Works? Ready for review?
Тесты рандомно падают на проверке работы приоритетов для драйвера rabbitmq, если rabbitmq запущен через докер.
Если запустить rabbitmq через раздел services, возникает другая проблема - rabbitmq не установлен в образе ubuntu xenial и поддержка travis говорит, что его нужно устанавливать вручную в этом образе.
php 5.5 нет в образе ubuntu xenial, придется использовать для тестирования образ trusty.
Раздел before_install для xenial и trusty получается разный. Путем проб и ошибок самый простой вариант - это использовать для всех тестов дистрибутив trusty
плюсы:
- единый раздел before_install
- поддержка php 5.5, 5.6, 7.0, 7.1, 7.2, 7.3
- rabbitmq подключается через раздел services
- все тесты работают (или не работают) стабильно
минусы:
- старый дистрибутив, возможны проблемы с поддержкой
- непонятно как он себя поведет с php 7.4
готово
Overall everything's well done 👍 Let's fix minor phpdoc issues and version constraint. Then I'll merge it.
How about merge it? =)
Need to resolve conflicts first. Travis was replaced by Github Actions so adaptation for these changes is required.
Came across the same problem. Can this PR be updated?