tp6 think |
您所在的位置:网站首页 › queue安装 › tp6 think |
0、启用命令方式
listen、work只能运行一种,运行work,再运行listen,那么就会停止work 第一种:指定任务名称运行 php think queue:listen --queue 任务名称 php think queue:work --queue 任务名称缺点:每次创建的任务都需要人工在命令窗口中监听运行才能生效 例子:先创建A任务了,已经运行监听php think queue:listen --queue A任务,如果需要创建另一个B任务并运行,那么还需要再一次运行监听php think queue:listen --queue B任务,否则B任务不可能进行。 第二种:不指定任务名称运行(推荐) php think queue:listen php think queue:work优点:只要在命令窗口中运行监听一次, 只要运行监听php think queue:listen或php think queue:work 一次,那么开发人员随时创建的任务都可以监听和运行,例子,这个月创建A了任务,下个月再创建B任务,只要推送就不需要再次运行监听命令; 停止命令: php think queue:restart 一、前言 为了实现订单超时删除功能,使用到think-queue队列,本文记录安装和使用think-php,Redis及进程常驻Supervisor。thinkphp-queue 是thinkphp 官方提供的一个消息队列服务,它支持消息队列的一些基本特性: 消息的发布,获取,执行,删除,重发,失败处理,延迟执行,超时控制等 队列的多队列, 内存限制 ,启动,停止,守护等 消息队列可降级为同步执行 二、安装 安装ThinkPHP6 使用composer安装。 composer create-project topthink/think tp安装think-queue 在ThinkPHP6的安装目录下输入下面命令安装。 composer require topthink/think-queue安装Redis 下载Redis,可以从官网下载redis,本文以redis-6.0.6为例。 wget http://download.redis.io/releases/redis-6.0.6.tar.gz tar xvf redis-6.0.6.tar.gz编译并安装Redis 编译时使用make MALLOC=libc编译,使用make编译时可能会报找不到jemalloc/jemalloc.h的错误,或者think-queue使用redis驱动时无法工作。为此坑曾经付出了2天时间的代价。 cd redis-6.0.6 make MALLOC=libc make install配置Redis并启动Redis服务 配置conf,将redis.conf里的“daemonize no”改为“daemonize yes”,让redis在后台运行 mkdir /etc/redis cp redis-6.0.6/redis.conf /etc/redis/redis.conf #将redis.conf里的“daemonize no”改为“daemonize yes”,让redis在后台运行。启动redis redis-server /etc/redis/redis.conf #启动redis服务查看redis服务是否运行 ps -ef |grep redis #查看redis是否运行停止redis redis-cli shutdown #停止redis服务安装phpredis PHP使用Redis需要安装Redis扩展库phpredis,最好下载发布版本。本文以5.3.1为例。 下载phpredis wget https://github.com/phpredis/phpredis/archive/5.3.1.tar.gz tar xvf 5.3.1.tar.gz编译phpredis phpize whereis php-config #命令返回 php-config: /opt/lampp/bin/php-config,下一步要用 ./configure --with-php-config=/opt/lampp/bin/php-config #设置php-config make make installphp添加redis扩展 在php.ini里增加redis.so。然后可以从phpinfo查看是否有 echo "extension=redis.so" >> /opt/lampp/etc/php.ini php -i | grep redis #查看是否支持redis扩展 三、配置queue.php(重点注意)安装好,首先修改默认配置\config\queue.php 配置消息队列,将config/queue.php将’default’ => ‘sync’改为’default’ => ‘redis’,使用Redis驱动。 如果不修改这里,在命令窗口启动的时候,不会有任何的提示 四、测试(队列生产者)参考:【消息队列学习一】TP6 基于 redis 实现消息队列和延迟队列 - 奇点原生 - 博客园 消息队列实现过程流程图 1、通过生产者推送消息到消息队列服务中 2、消息队列服务将收到的消息存入redis队列中(zset) 3、消费者进行监听队列,当监听到队列有新的消息时,获取队列第一条 4、处理获取下来的消息调用业务类进行处理相关业务 5、业务处理后,需要从队列中删除消息 4.1调用创建一个生产者 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |