Laravel очереди заданий и ловушки развертывания bitbucket - PullRequest
0 голосов
/ 05 января 2019

Мы используем конвейеры bitbucket для установки привилегий, установки композитора и, что важно, на после развертывания мы делаем следующее:

php artisan migrate 
nohup php artisan queue:work --daemon >/dev/null 2>&1 & 
php artisan up

Отлично, поэтому, когда конвейер запускается, мы создаем новый фоновый процесс для queue:work.

Моя проблема возникает, когда сначала запускается pre-deploy hook. Перед всем этим мы запускаем:

php /var/www/html/artisan queue:restart
php /var/www/html/artisan down

Я ожидаю, что очередь будет остановлена: рабочие будут остановлены, так как это доказано при локальном запуске или даже при непосредственном выполнении queue:restart на сервере. Однако каждый раз, когда конвейеры запускаются, кажется, что queue: restart ничего не делает, и мы создаем другой работающий процесс. Сейчас у нас 15 запущенных процессов очереди заданий laravel, потому что конвейер не убивает старые.

Вот фрагмент из скриптов в файле конвейера:

script:
            - apt-get update && apt-get install -y git rsync unzip libmcrypt-dev
            - curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
            - composer install
            - ssh $DEPLOY_USER@$STAGING_EC2_INSTANCE "[ -f /var/www/html/pre-deploy-hook ] && /var/www/html/pre-deploy-hook" || echo "No pre deploy hook found."
            - rsync -v -a -z --delete --exclude "storage/" --exclude ".git" . $DEPLOY_USER@$STAGING_EC2_INSTANCE:/var/www/html
            - ssh $DEPLOY_USER@$STAGING_EC2_INSTANCE "/var/www/html/post-deploy-hook-staging"

Кто-нибудь знает, как остановить работников очереди заданий Laravel? queue:restart должен непременно работать. У кого-нибудь, кто реализовал это в конвейере, есть ответ?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...