开始开发前需要先掌握以下技术栈
Linux基本命令使用、文件、进程管理、Nginx+PHP+MySQL+Redis环境配置
PHP开发
MySQL数据库
Redis数据库
Linux+Nginx+PHP7.2+MySQL(5.6|5.7)+Redis(4|5)
设置
/队列服务
,按要求启动队列服务,并测试通过;/condif #配置文件
/controllers #控制器
/events #事件定义类
/forms #表单处理
/handlers #事件处理
/jobs #队列任务
/models #数据库表模型
/plugins #插件
/validators #自定义验证器
/views #视图文件
/web #入口文件、资源文件
要开启开发调试模式,可在项目根目录下创建.env
配置文件,写入内容
YII_DEBUG=true
YII_ENV=dev
继承并调整了Yii Application类的部分代码,见文件core/WebApplication.php
、core/ConsoleApplication.php
使用Redis做存储数据库,Yii组件方式调用Yii:$app->queue
,详细api见文档yii2-queue
用到的地方
订单处理时保证单线程处理
定时任务功能
队列服务管理
默认启动方式是./yii queue/listen 1
,但是只能前台运行,所以编写了一段shell脚本让服务进入后台运行,见脚本./queue.sh
,脚本中自动写入系统的crontab,自动检测进程是否挂掉,挂掉将自动重启。
服务进入后台运行后可以使用ps -ef | grep "yii queue" | grep -v grep
命令检查服务是否在运行
因为服务是基于Yii Console运行的,要检查队列运行情况可查看日志文件runtime/logs/app.log
,服务没启动成功都可以检查日志文件
注意事项
如果使用到负载均衡,队列服务只能在一台服务器上运行!