shopro商城队列配置方法
1、注意事项
请不要将缓存驱动配置为 redis,否则会出现 Function Redis::delete() is deprecated 错误。如果缓存驱动是redis,请将队列的 redis 配置和 redis 的配置的 select (redis db 库) 设置成一样的,并且绝对不能和 cache 的 select (redis db 库) 一样,否则 fastadmin 后台右上角 清除缓存 将把所有缓存清除,包括队列任务。
2、普通优先级和高优先级两个队列监听都必须要配置
3、php 必须要安装 redis 扩展
安装完redis 请一定记得重启 nginx 服务
4、队列配置
为了提高系统性能,灵活性,将 订单自动关闭时间,自动确认时间,自动评价时间,以及 订单支付完成后续事件都放到队列异步处理,请务必配置队列
安装队列 composer 包 (最新版的 fastadmin 已经预装)
如果依赖安装中已安装,这一步可以忽略
composer require topthink/think-queue:v1.1.6
5、配置队列
建议使用 redis 驱动。没有配置文件,请手动创建如下文件
application/extra/queue.php
<?php
return [
// 队列驱动使用 redis 推荐, 可选 database
'connector' => 'redis',
// redis 主机地址
'host' => '127.0.0.1',
// redis 密码
'password' => '',
// redis 端口
'port' => 6379,
// redis db 库, 建议显示指定 1-15 的数字均可,如果缓存驱动是 redis,避免和缓存驱动 select 冲突
'select' => 1,
// redis 超时时间
'timeout' => 0,
// redis 持续性,连接复用
'persistent' => false,
];
6、php 安装 redis 扩展(驱动是 redis时必须安装)
宝塔安装方式
7、配置队列监听
命令行调试,可排查 supervisor 无法启动的错误
部分小伙伴宝塔 supervisor 按照文档配置好之后,总是出现无法启动的情况,一般情况是宝塔默认禁用了 php 部分函数,需要手动删除被禁用的函数,请点击查看依赖安装删除禁用函数
按照如下方式排查:
进入项目目录,cd /www/wwwroot/项目目录 // 这是宝塔默认项目目录,请自行进入自己的项目目录
执行(该进程会一直监听):php think queue:listen --queue=shopro-high
前端下单并支付(可以余额支付),之后看看命令会出现报错的打印结果,自行根据报错结果解决问题
解决之后将进程按 ctrl + c 结束,并执行如下命令更新项目权限,避免因为刚才执行命令导致的权限错误
chown -R www:www /www/wwwroot/项目目录
再去宝塔重新启动 supervisor 进程
8、宝塔面板配置,仅支持 linux【推荐】
请在宝塔面板,软件商店,搜索并安装 supervisor
9、为保证高优先级的执行效率,需要配置两个队列监听进程
(1)高优先级队列启动命令
php think queue:listen --queue shopro-high
(2)普通优先级队列启动命令
php think queue:listen --queue shopro
使用 supervisor 做进程守护,如果不是宝塔环境,仅支持 linux【推荐】,请自行安装 supervisor 软件
10、配置 supervisor
注意将下面的 command 和 directory 配置为自己的目录
(1)普通队列
[program:shopro]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /www/wwwroot/项目目录/think queue:listen --queue shopro
directory=/www/wwwroot/项目目录
numprocs=1
autostart=true
autorestart=true
user=www
redirect_stderr=true
stdout_logfile=/var/log/supervisor/shopro.log
stderr_logfile=/var/log/supervisor/shopro_err.log
(2)高优先级队列
[program:shopro-high]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /www/wwwroot/项目目录/think queue:listen --queue shopro-high
directory=/www/wwwroot/项目目录
numprocs=1
autostart=true
autorestart=true
user=www
redirect_stderr=true
stdout_logfile=/var/log/supervisor/shopro-high.log
stderr_logfile=/var/log/supervisor/shopro-high_err.log
简单方式,不安装 supervisor 【不推荐】
没有启动守护进程,命令可能异常终止,需要时刻关注队列监听进程是否还在运行
命令格式:
nohup sudo -u [php-fpm 执行用户|www] [php命令地址|/usr/bin/php] [think命令地址|/www/wwwroot/shopro/think] queue:listen >> /tmp/shopro.output 2>&1 &
示例:
// 普通队列
nohup sudo -u www /usr/bin/php /www/wwwroot/shopro/think queue:listen --queue=shopro >> /tmp/shopro.output 2>&1 &
// 高优先级队列
nohup sudo -u www /usr/bin/php /www/wwwroot/shopro/think queue:listen --queue=shopro-high >> /tmp/shopro.output 2>&1 &
建议使用 redis 驱动,如果切换队列驱动,请保证现有队列已经全部执行完毕,否则现有队列任务全部会丢失。
- 上一篇:没有了!
- 下一篇:shopro商城客服配置详细教程
- 前端模块化-requireJS教程 2024-08-26
- 出伏养生:这 5 件事切勿做,拥抱健康秋日 2024-08-26
- 每日一学养生小知识,为健康持续“加码” 2024-08-25
- 库尔斯克风云:普京指责乌方袭核电站,乌方称在此方向持续战斗 2024-08-25
- 深度解析:HTTP 与 HTTPS 的奥秘与差异 2024-08-25
- shopro商城客服配置详细教程 2024-08-23
- shopro商城队列配置方法 2024-08-22
- IGN 7 分!〈星球大战:亡命之徒〉全球媒体评分解禁
- 都市丽人优雅时尚穿搭,尽显雾霾蓝魅力
- 郑钦文美网征程艰难:场场皆为恶战,夺冠之路或连碰世界前三
- 伊朗或启动报复行动,导弹雨袭向以色列,黎真主党挑明立场
- iPhone 16 系列国行确定中国制造,摒弃印度造,放心入手
- 〈异形:夺命舰〉十日票房达 5 亿,强势夺下内地影史恐怖片票房桂冠
- 北京移动 5G-A 无源物联网,广覆盖成就千亿物联新时代
- 中国银行 300 亿元科创母基金落地,支持科技创新发展
- 前端模块化-requireJS教程
- 出伏养生:这 5 件事切勿做,拥抱健康秋日
- 巴以冲突加剧,中国的挑战与应对之思
- 科技巨头财报揭示:AI 研发费用高得惊人!
- 震撼历史时刻!<黑神话:悟空>全平台销量破千万套
- 七牛云携 AI 赋能音视频服务,即将闪耀 2024 数博会
- 每日一学养生小知识,为健康持续“加码”
- 王者归来!孙杨斩获复出首冠,国内赛事 17 连胜续写 15 年不败传奇
- 中国机器人专利惊艳:超 19 万项,独占全球约三分之二
- 沈腾〈逆鳞〉与葛优王俊凯〈刺猬〉首日票房出炉,成绩大揭秘
- 两岸同胞携手:坚决抵制赖清德当局“台独”恶行
- 指数迎新秀,“科创板八条”引领改革举措加速落地