# 队列配置
启用队列来处理某些任务(如:邮件,语言包翻译插件 (opens new window)中的一键生成语言包),配置步骤如下:
1.配置数据库驱动来处理队列
(1)在.env文件中,设置队列的驱动为database
QUEUE_CONNECTION=database
(2)在网站根目录下,执行命令创建表(failed_jobs、jobs)
php artisan queue:table
php artisan migrate
这两条命令会分别创建用于存储队列任务的表 jobs 和存储失败任务的表 failed_jobs。
(3)执行命令,启用队列
php artisan queue:work -v
2.处理常见问题
(1)查看相关的表 failed_jobs、jobs、notifications(可以使用数据库管理工具查看这些表中的数据。)
(2)查看控制台输出信息(执行 php artisan queue:work -v 命令时,控制台会输出任务的执行过程。如果有问题,它会显示错误信息,帮助你诊断任务处理过程中出现的问题。)
3.在生产环境中,你需要一种方法来保持 queue:work 进程运行。 queue:work 进程可能会因多种原因停止运行,例如超过 worker 超时或执行 queue:restart 命令。 出于这个原因,你需要配置一个队列服务,它可以检测你的 queue:work 进程何时退出并自动重新启动它们。
(1) 打开宝塔终端,进入/lib/systemd/system目录
cd /lib/systemd/system
(2) 新建beikeshop.service
vim beikeshop.service
(3)在创建的 beikeshop.service 文件中,填入以下内容:
[Unit]
Description=Beikeshop
[Service]
Type=simple
Restart=on-failure
User=root
ExecStart=/usr/bin/php <站点目录>/artisan queue:work --queue=defalut,gen_language_pack
[Install]
WantedBy=multi-user.target
保存并退出
(4)在服务创建完成后,可以通过以下命令来管理beikeshop.service服务
sudo systemctl start beikeshop.service //启动
sudo systemctl stop beikeshop.service //停止
sudo systemctl restart beikeshop.service //重启
sudo systemctl status beikeshop.service //查看状态
sudo systemctl enable beikeshop.service //开机启动