fastadmin think-queue supervisor配置

这篇具有很好参考价值的文章主要介绍了fastadmin think-queue supervisor配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

起因是微信支付回调需要同时做发货处理,但是发货接口不能影响,需要队列进行异步处理1.

1.fastadmin  后台购买queue插件(基于think-queue消息队列)

2.代码

        2.1 添加文件:application---->extra--->queue.php

        内容:我这里用的数据库做的驱动类型,这里不建议用数据库,我这条件有限

<?php
return [
    'connector'=>'database', //驱动类型,可选择 sync(默认):同步执行,database:数据库驱动,redis:Redis驱动,topthink:Topthink驱动
    //database
    'expire'  => 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_name=yuanqimohe #生成进程名称
command=php /www/wwwroot/yuanqimohe.hc8610.top/think queue:work --daemon #命令执行
autostart=true #自动启动,随着supervisor启动而启动
autorestart=true #假如挂掉自动重启
;user=admin  #以哪个用户执行
numprocs=8   # 将指示监控器运行 8 个 queue:work 进程并监视所有进程,如果它们失败,将自动重新启动它们
redirect_stderr=true #设置代码报错结果的输出文件,排错好助手
stdout_logfile=/var/log/supervisor/think-queue.log  #设置代码打印结果输出文件



注意:上述有注释 是看每个配置有啥用的 实际配置不要加注释  如下:
[program:chaowanmh-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /www/wwwroot/chaowanmh.hc8610.top/think queue:work --daemon
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile=/var/log/supervisor/think-queue.log

        3.5启动

#启动supservisor
supervisord -c /etc/supervisord.conf
#查看状态
supervisorctl status

fastadmin think-queue supervisor配置,fastadmin,queue,异步,thinkphp

        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 supervisor

2.杀死进程
kill 进程id


3.重启
supervisord -c /etc/supervisord.conf

4.查看状态
supervisorctl status

5.重启进程
sudo supervisorctl start chaowanmh-worker:*

6.如果修改了配置,加载更新配置
sudo supervisorctl reread
sudo supervisorctl update

fastadmin think-queue supervisor配置,fastadmin,queue,异步,thinkphp文章来源地址https://www.toymoban.com/news/detail-683361.html

到了这里,关于fastadmin think-queue supervisor配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从入门到精通:ThinkPHP6异步请求的全面解析!

    在ThinkPHP6中使用异步请求 在Web应用程序的开发中,经常会需要使用异步请求。异步请求能够在后台执行而不干扰页面的其他操作,提高了用户的体验。而在ThinkPHP6框架中,也提供了方便的异步请求方式,本文将详细介绍如何在ThinkPHP6中使用异步请求。 1. AJAX异步请求 使用AJ

    2024年01月18日
    浏览(46)
  • supervisor 配置自动启动服务

    一、编写服务  二、启动服务    

    2024年02月06日
    浏览(45)
  • fastAPI+gunicorn+supervisor模式部署配置文件

    gunicorn conf配置内容 supervisord 配置内容

    2024年02月15日
    浏览(42)
  • centos安装supervisor并配置,设置开机启动

    使用yum命令安装(推荐) $ sudo su - #切换为root用户 yum install epel-release yum install -y supervisor systemctl enable supervisord #开机自启动 systemctl start supervisord # 启动supervisord服务 systemctl status supervisord # 查看supervisord服务状态 ps -ef | grep supervisord # 查看是否存在supervisord进程 vim /lib/systemd/

    2024年01月25日
    浏览(42)
  • [Python] flask运行+wsgi切换生产环境+supervisor配置指南

    flask项目本地启动时,控制台会打印如下warning 翻译成 人话就是,“我这个环境就是你开发时用,实际生产的时候可别找我,出事我不负责。” 好家伙呀。 但是他指了另外一条路: Use a production WSGI server 。 依然还是带着问题学习,从本篇文章可以了解如下内容 flask本身自带

    2024年02月03日
    浏览(43)
  • 宝塔面板使用Supervisor进程守护插件,配置守护Mysql的操作教程。

    本篇文章主要讲解,在宝塔面板中使用Supervisor进程守护插件,配置守护Mysql的操作教程。 作者:任聪聪 日期:2023年11月5日 安装说明:在软件商店中搜索“进程守护”,找到如下插件应用并安装 step1:点击设置打开应用 step2:找到mysql服务并点击打开 通过插件的形式找:只需

    2024年02月04日
    浏览(38)
  • thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

    环境变量 设置环境变量 /.env [DATABASE] USERNAME = root PASSWORD = 123456 获取环境变量 app/controller/Index.php 访问测试 http://codeit.org.cn/index {“username”:“root”,“password”:“123456”} 1.在thinkphpconfig下新建一个test.php配置文件 .test.php文件内容 调用test.php配置文件 配置 配置设置 config/app.

    2024年02月13日
    浏览(50)
  • Thinkphp 6.0开启调试与配置文件

    学习要点: 1.开启调试 2.配置文件 本节课我们来开启一下系统的调试功能,以及简单理解下框架配置信息。 1. 在开发阶段,我们建议开启框架的调试模式; 2. 调试模式开启后,会牺牲一些执行效率,但大大提高了开发排错的能力; 3. 当项目部署到生产环境时,再关闭调试模

    2024年02月08日
    浏览(31)
  • 【supervisor】unix:///tmp/supervisor.sock no such file

    supervisor在正常安装完时运行正常,但隔一段时间后出现了故障,重启后报: unix:///tmp/supervisor.sock no such file 原因是 supervisor 默认配置会把 socket 文件和 pid 守护进程生成在Linux的/tmp/目录下,/tmp/目录是缓存临时文件的目录,Linux会根据不同情况自动删除其下面的文件。比如缓存

    2024年01月25日
    浏览(31)
  • Think in Java之多态

    多态通过分离做什么和怎么做,从另一角度将接口和实现分离开来。多态方法调用允许亿欧汇总类型表现出与其他相似类型之间的区别。 导出类从基类继承而来,所以存在于基类中的接口也必定存在于导出类中。将导出类转换为基类称作“向上转型”,上是按照类的继承关系

    2024年02月04日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包