thinkphp-queue 是thinkphp 官方提供的一个消息队列服务,我们可用它来做一些需要用到队列的功能,如抢购等,也可用它来实现定时任务功能
1、安装
tp5支持的thinkphp-queue版本为2.0.*,3.0以上的版本需要tp6以上的环境
composer 安装代码:composer require topthink/think-queue=2.0.*
2、搭建消息队列的储存环境
-
使用 Redis [推荐]
安装并启动 Redis 服务
-
使用数据库 [不推荐]
CREATE TABLE `prefix_jobs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `queue` varchar(255) NOT NULL, //队列名称 `payload` longtext NOT NULL, //数据和指定的消费类信息在这里面 `attempts` tinyint(3) unsigned NOT NULL, //执行的次数 `reserved` tinyint(3) unsigned NOT NULL, //0未执行 1执行中 `reserved_at` int(10) unsigned DEFAULT NULL, //开始执行的时间戳 `available_at` int(10) unsigned NOT NULL, //最早可执行的时间 `created_at` int(10) unsigned NOT NULL, //创建时间 PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
3、消息队列配置
在 站点根目录/config/queue.php中设置配置信息
return [
'connector' => 'Redis', // Redis 驱动
'expire' => 60, // 任务的过期时间,默认为60秒; 若要禁用,则设置为 null
'default' => 'default', // 默认的队列名称
'host' => '127.0.0.1', // redis 主机ip
'port' => 6379, // redis 端口
'password' => '', // redis 密码