Laravel Jobs队列和Bitbucket部署挂钩

时间:2019-01-04 21:16:49

标签: laravel deployment bitbucket bitbucket-pipelines laravel-queue

我们使用bitbucket管道设置权限,进行作曲家安装,并且重要的是,在后期部署上,我们执行以下操作:

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

太好了,所以当管道运行时,我们正在为queue:work创建一个新的后台进程。

我的问题是 pre-deploy 挂钩首先运行。在所有这些之前,我们运行:

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

我希望queue:workers被停止,因为事实证明是本地运行,甚至直接在服务器上执行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 个答案:

没有答案