iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >怎么解决thinkphp-queue的相关问题
  • 728
分享到

怎么解决thinkphp-queue的相关问题

2023-06-06 12:06:33 728人浏览 八月长安
摘要

这篇“怎么解决thinkPHP-queue的相关问题”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“怎么解决thinkphp-queue的相关问题”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望

这篇“怎么解决thinkPHP-queue的相关问题”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“怎么解决thinkphp-queue的相关问题”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起来看看具体内容吧。

thinkphp是什么

thinkphp属于一种免费的开发框架,能够用于开发前端网页,最早thinkphp是为了简化开发而产生的,thinkphp同时也是遵循Apache2协议,最初是从Struts演变过来,也把国外一些好的框架模式进行利用,使用面向对象的开发结构,兼容了很多标签库等模式,它能够更方便和快捷的开发和部署应用,当然不仅仅是企业级应用,任何php应用开发都可以从thinkphp的简单、兼容和快速的特性中受益。

mysql超时断线问题

队列任务运行一段时间,出现:sqlSTATE[HY000]: General error: 2006 MySQL Server has Gone away报错。

解决方法和分析:

配置文件database.php中配置断线重连:

  // 是否需要断线重连  'break_reconnect'  =>  true,  // 断线标识字符串  'break_match_str'  => ['2006'],

配置后虽然日志中会出现另一个报错:PDO::prepare(): send of 60 bytes failed with errno=32 Broken pipe,但并不影响程序运行结果。因为断线重连后,程序都会抛出错误:

...} catch (\PDOException $e) { if ($this->isBreak($e)) { return $this->close()->query($sql, $bind, $master, $pdo); } throw new PDOException($e, $this->config, $this->getLastsql());} catch (\Throwable $e) { if ($this->isBreak($e)) { return $this->close()->query($sql, $bind, $master, $pdo); } throw $e;} catch (\Exception $e) { if ($this->isBreak($e)) { return $this->close()->query($sql, $bind, $master, $pdo);  } throw $e;}

如何在Docker环境进行进程监护

一般情况下,可以使用supervisor监护队列进程。配合docker使用的话,大概有几方案:

将supervisor安装到php服务所在的容器

跑一个新的容器来运行队列任务(不用supervisor,容器本身是一个daemon)

直接在现有的php容器运行队列任务(命令行使用–daemon选项)

方法一supervisor参考配置(放在/etc/supervisor/conf.d, 文件命名为{file-name}.conf):

[program:my_queue_name]process_name=%(program_name)s_%(process_num)02dcommand=php /path/to/think queue:work --queue=your-queue-name --sleep=3 --daemonautostart=trueautorestart=truenumprocs=1user=rootstopasgroup=truekillasgroup=trueredirect_stderr=truestdout_logfile=/path/to/your-queue.log

方法二新开一个镜像参考配置(在docker-compose.yml中添加服务):

php-queue: container_name: queue image: docker_php-fpm73 restart: always command: php path/to/think queue:work --sleep=3 volumes: - ../project:/var/www/html - ./conf/php:/usr/local/etc/php - ./conf/php/conf.d:/usr/local/etc/php/conf.d - ./conf/supervisor:/etc/supervisor/conf.d networks: - Mysql - Nginx

方法三有点hack,为了不大改线上环境,最后使用方法三(在host机子操作)。

启动:docker exec -i php7 php /path/to/think queue:work --queue=my-queue-name --sleep=3 --daemon

重启:docker exec -i php7 php /path/to/think queue:restart (重启后发现队列进程消失了),然后再启动

查看队列进程: ps -aux | grep queue

日志调整

有时候某些原因程序出错,会有大量日志生成,最好调整下日志,单独出来。在配置文件config/queue.php开头添加:

use think\facade\Log;Log::init([    'single'    => 'queue',    'file_size' => 1024 * 1024 * 10,    'level'     => ['error'],]);

日志将输出到runtime目录的queue-cli.log文件                      

感谢你的阅读,希望你对“怎么解决thinkphp-queue的相关问题”这一关键问题有了一定的理解,具体使用情况还需要大家自己动手实验使用过才能领会,快去试试吧,如果想阅读更多相关知识点的文章,欢迎关注编程网PHP编程频道!

--结束END--

本文标题: 怎么解决thinkphp-queue的相关问题

本文链接: https://www.lsjlt.com/news/246922.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么解决thinkphp-queue的相关问题
    这篇“怎么解决thinkphp-queue的相关问题”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“怎么解决thinkphp-queue的相关问题”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望...
    99+
    2023-06-06
  • 怎么解决JavaScript相关的问题
    这篇文章主要讲解了“怎么解决JavaScript相关的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决JavaScript相关的问题”吧!一、如何...
    99+
    2022-10-19
  • Sequoiadb backupOffline相关问题怎么解决
    这篇文章主要介绍“Sequoiadb backupOffline相关问题怎么解决”,在日常操作中,相信很多人在Sequoiadb backupOffline相关问题怎么解决问题上存在疑惑,小编查阅了各式资料...
    99+
    2022-10-19
  • mysql解决时区相关问题
    前言: 在使用 MySQL 的过程中,你可能会遇到时区相关问题,比如说时间显示错误、时区不是东八区、程序取得的时间和数据库存储的时间不一致等等问题。其实,这些问题都与数据库时区设置有关,本篇文章将从数据库参数入手,逐...
    99+
    2022-05-25
    mysql 时区 mysql 时区问题
  • 怎么解决thinkphp save失败问题
    这篇文章主要讲解了“怎么解决thinkphp save失败问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决thinkphp save失败问题”吧!thinkphp save失败的解...
    99+
    2023-06-22
  • thinkphp hy2002报错问题怎么解决
    本篇内容介绍了“thinkphp hy2002报错问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、常见的错误类型在使用thin...
    99+
    2023-07-06
  • php跳转时间戳相关问题怎么解决
    这篇文章主要介绍了php跳转时间戳相关问题怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php跳转时间戳相关问题怎么解决文章都会有所收获,下面我们一起来看看吧。PHP跳转时间戳:在网站开发中,常常需要用...
    99+
    2023-07-05
  • ajax的 IE cache 相关问题解决是怎样的
    本篇文章给大家分享的是有关ajax的 IE cache 相关问题解决是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 ...
    99+
    2022-10-19
  • 怎么解决thinkphp new self()报错问题
    这篇文章主要讲解了“怎么解决thinkphp new self()报错问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决thinkphp new self()报错问题”吧!具体问题描...
    99+
    2023-06-21
  • 出现module'queue'hasnoattribute'Queue'问题的解决
    目录module 'queue' has no attribute 'Queue'解决方法 python:AttributeError: m...
    99+
    2023-05-18
    module'queue'attribute'Queue' module'queue'has no attribute'Queue
  • 一文解决MySQL时区相关问题
    前言: 在使用MySQL的过程中...
    99+
    2022-10-18
  • C++回溯算法中组合的相关问题怎么解决
    这篇文章主要讲解了“C++回溯算法中组合的相关问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++回溯算法中组合的相关问题怎么解决”吧!回溯算法模板void backtracki...
    99+
    2023-07-05
  • Python正则表达式对象怎么解决相关问题
    本篇内容主要讲解“Python正则表达式对象怎么解决相关问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python正则表达式对象怎么解决相关问题”吧!产生方式:通过re.compile(pa...
    99+
    2023-06-17
  • 电脑驱动安装使用相关问题怎么解决
    今天小编给大家分享一下电脑驱动安装使用相关问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。电脑驱动怎么安装:首先用...
    99+
    2023-06-30
  • Android中NavigationView的使用与相关问题解决
    一、基本使用 1. NavigationView 在 design 库中,添加依赖(最新的是 23.2.0); compile 'com.android.support:d...
    99+
    2022-06-06
    Android
  • Android 后台启动startService()相关问题的解决
    需求 有一个用户需要这样一个功能,要求是APP能在充电的时候自动进入APP的一个界面 我寻思着,这玩意用普通权限做不了呀,不过APP有root权限倒也无妨,于是便决定采用Service去做后台服务 问题 某天,在Bugly看到如下的错误报告...
    99+
    2023-08-17
    android java android studio
  • CSS如何解决DIV居中相关问题
    这篇文章主要介绍CSS如何解决DIV居中相关问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!用CSS解决DIV居中问题一,用CSS使DIV层水平居中对需要水平居中的DIV层添加以下...
    99+
    2022-10-19
  • 解决SpringSecurity中AuthenticationEntryPoint不生效相关问题
    目录在这里我的代码如下用不存在的用户名密码登录后会出现以下返回数据以下是配置信息以下是实现的验证码登录过滤器以下是对应的源码我们首先看一下当前Security的拦截器链为了保证拦截器...
    99+
    2022-11-12
  • windows网卡驱动安装操作相关问题怎么解决
    这篇文章主要讲解了“windows网卡驱动安装操作相关问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“windows网卡驱动安装操作相关问题怎么解决”吧!网卡驱动怎么安装:首先右击...
    99+
    2023-06-30
  • mybatis中字段名与关键字相同问题怎么解决
    这篇文章主要介绍“mybatis中字段名与关键字相同问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“mybatis中字段名与关键字相同问题怎么解决”文章能帮助大家解决问题。mybatis中...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作