Laravel очереди заданий и ловушки развертывания bitbucket

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

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

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

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

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 должен непременно работать. У кого-нибудь, кто реализовал это в конвейере, есть ответ?

Спасибо!

0 ответов

Другие вопросы по тегам