php中文网最新课程

每日17点准时技术干货分享

最近小编收到群里面的小伙伴在使用ThinkPHP5.0的框架时,不知道如何使用php-queue(实在尴尬,网上很多这方面的教程)。哈哈,不想参考也没关系,小编就具体地走一遍吧~~关于什么是队列?队列的解决什么?队列有哪些场景?...等等这些问题,开发者请自行先去了解,还有本案例只针对ThinkPHP框架进行具体操作哦。1、安装 thinkphp-queue推荐使用Composer进行安装,切换到项目的根目录,执行: composer require topthink/think-queue2、配置消息队列的存储环境配置文件位于 application\extra\queue.php,如图:使用Redis驱动,如果Redis环境还没有安装,请自行安装哦,很简单的,或者也可以使用其他类型驱动,如图:3、任务的创建我们在index模块下,Index.php文件,建立一个名为 queue 的方法(一定要这样么?当然不是,本教程,只是例子,你可以新建模块,方法名也可以是其他),如图:4、任务消息的消费以及删除处理我们在 index模块下创建一个 job 文件,该文件用来处理消费模式,如图:在 Demo 这个类下,创建一个 fire 方法,该方法是消息队列默认调用的方法。如图:以上就是完成任务的创建--》推送--》消费了。
在浏览器或者终端,执行一下我们 index/queue.html 方法,就完成创建以及推送了,关于任务消费,可以参考一下命令,在终端切换到项目的根目录:5、监听任务并执行

php think queue:listenphp think queue:work –daemon(不加–daemon为执行单个任务)

两种,具体的可选参数可以输入命令加 –help 查看

可配合supervisor使用,保证进程常驻

1.1 命令模式

  • queue:subscribe 命令 [截至2017-02-15,作者暂未实现该模式,略过]

  • queue:work 命令

  • work 命令:该命令将启动一个 work 进程来处理消息队列。

php think queue:work --queue helloJobQueue
  • queue:listen 命令

listen 命令:该命令将会创建一个 listen 父进程 ,然后由父进程通过 proc_open(‘php think queue:work’) 的方式来创建一个work 子 进程来处理消息队列,且限制该work进程的执行时间。

php think queue:listen --queue helloJobQueue

2.2 命令行参数

  • Work 模式

php think queue:work \--daemon            //是否循环执行,如果不加该参数,则该命令处理完下一个消息就退出--queue  helloJobQueue  //要处理的队列的名称--delay  0 \        //如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0--force  \          //系统处于维护状态时是否仍然处理任务,并未找到相关说明--memory 128 \      //该进程允许使用的内存上限,以 M 为单位--sleep  3 \        //如果队列中无任务,则sleep多少秒后重新检查(work+daemon模式)或者退出(listen或非daemon模式)--tries  2          //如果任务已经超过尝试次数上限,则触发‘任务尝试次数超限’事件,默认为0
  • Listen 模式

php think queue:listen \--queue  helloJobQueue \   //监听的队列的名称--delay  0 \         //如果本次任务执行抛出异常且任务未被删除时,设置其下次执行前延迟多少秒,默认为0--memory 128 \       //该进程允许使用的内存上限,以 M 为单位--sleep  3 \         //如果队列中无任务,则多长时间后重新检查,daemon模式下有效--tries  0 \         //如果任务已经超过重发次数上限,则进入失败处理逻辑,默认为0--timeout 60         //创建的work子进程的允许执行的最长时间,以秒为单位
  • 可以看到 listen 模式下,不包含 --deamon 参数,原因下面会说明

Linux启动守护进程,以tp5为例子

nohup php think queue:work --daemon --queue 任务名称 &nohup php think queue:work --daemon --queue 任务名称 &

在Linux查看任务数量,可以在终端输入:jobs -l

thinkphp redis队列处理_教你用ThinkPHP中thinkphpqueue相关推荐

  1. thinkphp6实现redis连接池_详解thinkphp+redis+队列的实现代码

    1,安装Redis,根据自己的PHP版本安装对应的redis扩展(此步骤简单的描述一下) 1.1,安装 php_igbinary.dll,php_redis.dll扩展此处需要注意你的php版本如图: ...

  2. python画板颜色_教你在python中用不同的方式画不同颜色的画布

    摘要 在这篇文章中将给大家讲解如何分别用numpy的方法,与numpy与cv2结合的方法创建空白画布,创建白色画布,与创建彩色画布.在讲解过程中还会介绍cv2进行通道分割cv2.split与通道合并c ...

  3. 设置全屏_教你在直播中如何显示全屏弹幕,增加与粉丝的互动

    今天来看看bilibili直播平台直播时如何在全屏游戏的时候观看直播间的弹幕. 1弹幕姬 弹幕姬是一个第三方的插件,官网是https://www.danmuji.org/.可以设置它来读取弹幕或观看全 ...

  4. linux ping 端口_教你排除linux中网络故障问题

    php中文网课程 每日17点准时技术干货分享 本文为php中文网认证作者:"齐天大圣"投稿. 如果公司网站打不开了,假如是因为网络问题,你该如何去进行排查.又比如,远程连接工具连不 ...

  5. linux 修改时区_教你在Centos8中更改时区

    对于许多与系统相关的任务和进程,使用正确的时区是必不可少的.例如,cron守护进程使用系统的时区执行cron作业,日志文件中的时间戳基于同一系统的时区. 环  境 CentOS 8 检查现在的时区 t ...

  6. zbrush常用笔刷_教您在ZBrush中制作笔刷

    ZBrush®给用户提供了许多的常用笔刷,我们可以使用这些笔刷自由地发挥创意.为了让雕刻速度更快,模型刻画更细致我们常常也会创建自定义笔刷,本文教您在ZBrush中制作笔刷. 步骤一 在Tool工具下 ...

  7. 打印设置自定义表尾_教大家Excel2013表格中如何打印固定的表头和表尾

    近日有关于Excel2013表格中如何打印固定的表头和表尾的问题受到了很多网友们的关注,大多数网友都想要知道Excel2013表格中如何打印固定的表头和表尾的具体情况,那么关于到Excel2013表格 ...

  8. mysql trunc函数_教您使用SQL中的TRUNC函数

    SQL函数是每个SQL数据库使用者都必须要掌握的,下面就将为您介绍SQL中TRUNC函数的两种用法,供您参考,希望对您学习SQL函数的使用能有帮助. 1.TRUNC(for dates) TRUNC函 ...

  9. aliyun redis 链接超时_用redis做异步队列,原来还可以这样

    Redis设计主要是用来做缓存的,但是由于它自身的某种特性使得它可以用来做消息队列. 它有几个阻塞式的API可以使用,正是这些阻塞式的API让其有能力做消息队列: 另外,做消息队列的其他特性例如FIF ...

最新文章

  1. CentOS5.6系统下mysql5安装
  2. 基于图像的三维物体重建:在深度学习时代的最新技术和趋势综述之训练
  3. 通信系统之信道(二)
  4. python3 字符串转数组 数组转字符串 切片操作
  5. SAP Spartacus 404 Not found页面的显示机制 - canActivateNotFoundPage
  6. 赞扬精心设计:基于属性的测试如何帮助我成为更好的开发人员
  7. 漫步线性代数二十三——行列式公式
  8. 11月13日上午ajax返回数据类型为JSON数据的处理
  9. 制药工程专业计算机二级,全国制药工程本科专业认证标准2016年12月修订.pdf
  10. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_3_转换流的原理...
  11. 关于BinaryFormatter
  12. 3dmax如何快速查找丢失贴图,并根据贴图快速找到对应物体
  13. 15 种最受欢迎的数据可视化流程图及模板
  14. 参考文献中英文人名_参考文献中英文人名的写法-
  15. 温州话的歌曲也很好听
  16. 大一新生的第一篇博客
  17. sybase 快速删除大数据库的手顺方法
  18. 激光slam基础入门笔记2——位姿表示与变换矩阵
  19. chrome:initiator
  20. Linux C语言实现TCP客户端与服务器

热门文章

  1. 谷歌大脑组合模型霸榜 SuperGLUE
  2. 双十一的秒杀场景是如何设计的?
  3. 十年厚积!Arm Neoverse 重磅推出 V1 和 N2平台,加速基础设施转型
  4. OpenCV 20 年,首款开源软硬一体的 OAK 套件来了!
  5. 每个创始人都需要了解的来自 Y Combinator 的 13 个见解
  6. 10年资深面试官直言:80%人面试Java都会止步于此!
  7. 汇编指令入门级整理 | 原力计划
  8. 阿里云河源数据中心正式开服 疫情期间曾2小时扩容1万台云服务器
  9. 2019 最新 200 道 Java 面试题
  10. 程序员破解推荐系统瓶颈,带来超百亿收入增量!