怎样做好邯郸网站建设,WordPress默认头像修改方法,倒闭汉化组的wordpress,wordpress会员制订阅起因是微信支付回调需要同时做发货处理#xff0c;但是发货接口不能影响,需要队列进行异步处理1.
1.fastadmin 后台购买queue插件(基于think-queue消息队列)
2.代码 2.1 添加文件#xff1a;application----extra---queue.php 内容#xff1a;我这里用的数据库做…起因是微信支付回调需要同时做发货处理但是发货接口不能影响,需要队列进行异步处理1.
1.fastadmin 后台购买queue插件(基于think-queue消息队列)
2.代码 2.1 添加文件application----extra---queue.php 内容我这里用的数据库做的驱动类型这里不建议用数据库我这条件有限
?php
return [connectordatabase, //驱动类型可选择 sync(默认):同步执行database:数据库驱动,redis:Redis驱动,topthink:Topthink驱动//databaseexpire 60,default ,table faqueue_jobs, //插件下载的表dsn [type mysql,database ,hostname 127.0.0.1,username ,password ,prefix ,]
]; 2.2新建job文件application----job---job1.php 内容
?php
namespace app\job;use addons\faqueue\library\QueueApi;
use think\Db;
use think\Log;
use think\queue\Job;class Job1{public function fire(Job $job, $data){//....这里执行具体的任务//自动发货log::write([msg发货开始],log);self::sendGoods($data[out_trade_no],$data[transaction_id],$data[openid]);log::write([msg发货结束],log);if ($job-attempts() 3) {//通过这个方法可以检查这个任务已经重试了几次了log::write([msg任务已经超过三次],log);}//如果任务执行成功后 记得删除任务不然这个任务会重复执行直到达到最大重试次数后失败后执行failed方法$job-delete();return true; //这里一定要返回 不然会不断请求// 也可以重新发布这个任务
// $job-release($delay); //$delay为延迟时间}public function failed($data){log::write([msg失败原因,data$data],log);// ...任务达到最大重试次数后失败了}} 2.3在需要异步处理的地方 QueueApi::later(10,app\job\job1,$delaydata);//QueueApi是插件直接引入就行 2.4这里开启queue后日志文件一直在增大。解决方案是config文件里配置debug和log为level----error。这样线上就不会产生日志了 // 应用调试模式app_debug Env::get(app.debug, false),log [// 日志记录方式内置 file socket 支持扩展type File,// 日志保存目录path LOG_PATH,// 日志记录级别level [error],], 3.光有队列不行需要跟进程管理器supervisor配合。 3.1 安装supervisor------centos7系统
#yum 安装 supervisor
yum install -y supervisor
#生成配置文件 配置文件生成位置为/etc/supervisord.conf 3.3 配置supervisor.conf
vi /etc/supservisord.conf
在supservisord.conf文件最后加入如下配置
files /etc/supervisord.d/*.conf#这里用到了var/log 和var/run/supervisor
chmod -R 777 /var/log
chmod -R 777 /var/run/supervisor 3.4 项目配置多个项目就配置多个子文件
vi /etc/supervisord.d/chaowanmh.conf 配置内容如下
[program:yuanqimohe-worker]
process_nameyuanqimohe #生成进程名称
commandphp /www/wwwroot/yuanqimohe.hc8610.top/think queue:work --daemon #命令执行
autostarttrue #自动启动,随着supervisor启动而启动
autorestarttrue #假如挂掉自动重启
;useradmin #以哪个用户执行
numprocs8 # 将指示监控器运行 8 个 queue:work 进程并监视所有进程如果它们失败将自动重新启动它们
redirect_stderrtrue #设置代码报错结果的输出文件,排错好助手
stdout_logfile/var/log/supervisor/think-queue.log #设置代码打印结果输出文件注意上述有注释 是看每个配置有啥用的 实际配置不要加注释 如下
[program:chaowanmh-worker]
process_name%(program_name)s_%(process_num)02d
commandphp /www/wwwroot/chaowanmh.hc8610.top/think queue:work --daemon
autostarttrue
autorestarttrue
userroot
numprocs8
redirect_stderrtrue
stdout_logfile/var/log/supervisor/think-queue.log 3.5启动
#启动supservisor
supervisord -c /etc/supervisord.conf
#查看状态
supervisorctl status 3.6 创建了配置文件后你可以使用以下命令更新 Supervisor 配置并启动进程
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start chaowanhm-worker:* //这是/etc/supervisord.d/chaowanmh.conf里配置progrom,如果有多个队列就启动多个 3.7 排查
1.查看进程红框内是进程作为小白的我以为下边那个是进程一直杀不死也是绝了
ps aux|grep supervisor2.杀死进程
kill 进程id3.重启
supervisord -c /etc/supervisord.conf4.查看状态
supervisorctl status5.重启进程
sudo supervisorctl start chaowanmh-worker:*6.如果修改了配置加载更新配置
sudo supervisorctl reread
sudo supervisorctl update