tp6 think

您所在的位置:网站首页 queue安装 tp6 think

tp6 think

2022-06-14 12:16| 来源: 网络整理| 查看: 265

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 install

php添加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