laravel - 如何在 docker 容器中更新 Laravel 队列工作者的运行代码
问题描述
我有一个在 docker 容器内运行的 Laravel 实例。我也有 supervisord 保持一些队列工作人员运行。在我的Dockerfile
,我有这个:
CMD ["/usr/bin/supervisord", "-c", "/etc/supervisor/supervisord.conf"]
supervisord.conf
包括其他配置文件,包括laravel-worker.conf
如下所示:
[program:laravel-worker]
directory=/var/www
process_name=%(program_name)s_%(process_num)02d
command=php artisan queue:work --sleep=3 --tries=3 --timeout=950
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=20
redirect_stderr=true
stdout_logfile=/var/www/logs/queue-worker-error.log
stdout_logfile_maxbytes=524288
stderr_logfile=/var/www/logs/queue-worker-error.log
stderr_logfile_maxbytes=524288
stopwaitsecs=3600
priority=6
我有另一个.conf
运行这个 bash 脚本的文件:
while true
do
php /var/www/artisan schedule:run --no-interaction &
sleep 60
done
我不知道是否有任何代码是相关的。我的问题是,当我更新我的 PHP 代码时,这些作业一直在尝试使用旧代码。我尝试了以下方法:
- 使用重新启动工人
php artisan queue:restart
php artisan queue:flush
- 使用重新启动容器
docker restart <container>
- 删除容器和图像并重建它们
现在我不知道该尝试什么,我很生气。接下来我应该尝试什么?
解决方案
推荐阅读
- scala - Scala - 高阶函数中的完美数字使用 - 有什么问题吗?
- python - 将数据从数据框附加到 JSON
- asynchronous - 使用c ++的Grpc异步双向客户端
- asp.net - 如何在 Asp.net 中隐藏错误请求 400 的响应标头
- python-3.x - 格式化电脑后出现编译问题
- php - 如何在 CodeIgniter 中使用 JWPlayer?
- docusaurus - 使侧边栏不可折叠并始终在 docusaurus V2 经典预设中展开
- python - Visual Studio Code:在没有相应 .py 文件的情况下使用 .pyd 文件时可以使用 Intellisense /“转到定义”吗?(pywin32)
- c# - 如何在 Polly 中创建策略以支持 http 响应 retry-after 标头
- vue.js - vue渲染的问题 Json返回良好但不显示