# 队列配置

启用队列来处理某些任务(如:邮件,语言包翻译插件 (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 //开机启动