tp5.0 queue 队列操作
检查是否安装redis(没有请自行百度安装):
phpinfo:

配置thinkphp-queue,没有请执行 composer require topthink/think-queue 加入:

创建 队列 文件:
use think\Queue;
class TestQueue
{
// 测试
public function queue()
{
// 推迟 n 秒执行 $queue = '指定队列名'
Queue::later(', 'app\message\job\Work','aa@qq.com','');
// 执行 Work 的 send 方法
//Queue::push('app\message\job\Work@send','aa@qq.com');
// 默认执行 Work 的 fire 方法
//Queue::push('app\message\job\Work','aa@qq.com');
echo '加入队列成功';
}
}
队列 逻辑处理 文件:
namespace app\message\job;
use think\queue\Job;
class Work
{
// 默认执行的方法
public function fire(Job $job, $data)
{
$isJobDone = $this->send($data);
if ($isJobDone) {
//成功删除任务
$job->delete();
} else {
//任务轮询4次后删除
) {
// 第1种处理方式:重新发布任务,该任务延迟10秒后再执行
//$job->release(10);
// 第2种处理方式:原任务的基础上1分钟执行一次并增加尝试次数
//$job->failed();
// 第3种处理方式:删除任务
$job->delete();
}
}
}
/**
* 根据消息中的数据进行实际的业务处理
* @param array|mixed $data 发布任务时自定义的数据
* @return boolean 任务执行的结果
*/
private function send($data)
{
// 开始执行队列的逻辑
echo 'int ....';
echo PHP_EOL;
echo 'data: ' .$data;
echo PHP_EOL;
// ...
return true;
}
}
后台监听即可:
php think queue:listen
php think queue:listen --queue 'queuename' // 监听指定队列
访问 127.0.0.1/message/testqueue (路由自行配置)
控制台查看

参考文档:https://github.com/coolseven/notes/blob/master/thinkphp-queue/README.md
守护进程(supervisor):https://blog.csdn.net/qq_34856247/article/details/86741533
tp5.0 queue 队列操作的更多相关文章
- PHP Tp5.0 PHPExcel 导出操作
1.导出 excel 方法 2.导出方法(简单快速)
- JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue
前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...
- python threading模块使用 以及python多线程操作的实践(使用Queue队列模块)
今天花了近乎一天的时间研究python关于多线程的问题,查看了大量源码 自己也实践了一个生产消费者模型,所以把一天的收获总结一下. 由于GIL(Global Interpreter Lock)锁的关系 ...
- jquery源码解析:jQuery队列操作queue方法实现的原理
我们先来看一下jQuery中有关队列操作的方法集: 从上图可以看出,既有静态方法,又有实例方法.queue方法,相当于数组中的push操作.dequeue相当于数组的shift操作.举个例子: fun ...
- ThinkPHP5.0框架开发--第7章 TP5.0数据库操作
ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...
- 关于 tp5.0 阿里云 oss 上传文件操作
tp5.0 结合阿里云oss 上传文件 1.引入 oss 的空间( composer install 跑下第三方拓展包及核心代码包) 备注:本地测试无误,放到线上有问题 应该是移动后的路劲(相对于服 ...
- jQuery源码分析系列(38) : 队列操作
Queue队列,如同data数据缓存与Deferred异步模型一样,都是jQuery库的内部实现的基础设施 Queue队列是animate动画依赖的基础设施,整个jQuery中队列仅供给动画使用 Qu ...
- Python自动化运维之16、线程、进程、协程、queue队列
一.线程 1.什么是线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位. 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行 ...
- Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块
Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fab ...
随机推荐
- 【alpha阶段】第九次Scrum Meeting
每日任务内容 队员 昨日完成任务 明日要完成的任务 牛宇航 #26 评价总览接口编写https://github.com/rRetr0Git/rateMyCourse/issues/26 #26 评价 ...
- codeforces#1139D. Steps to One (概率dp+莫比乌斯反演)
题目链接: http://codeforces.com/contest/1139/problem/D 题意: 在$1$到$m$中选择一个数,加入到一个初始为空的序列中,当序列的$gcd$和为$1$时, ...
- Counting Sort(Java)
public static void countingsort(int[] a, int n) //n = a.length { int max = a[0], min = a[0]; for(int ...
- JAVA的三个版本,JSE,JEE,JME三者之间的区别
JAVA是一种面向对象语言由SUN公司出品 J针对不同的使用方向规划出JSE,JEE,JME三个版本 1.JSE 指标准版一般用于用户学习JAVA语言的基础也是使用其他两个版本的基础主要用于编写C/S ...
- 搭建SpringMVC+Hibernate
1.首先加入相关的jar包,配置web.xml文件,如下: <?xml version="1.0" encoding="UTF-8"?> <w ...
- Kubernetes & Docker
Docker核心技术原理及其应用 Docker 概览 Docker版本与安装介绍 Docker 核心技术之镜像 Docker 核心技术之容器 Docker 核心技术之容器与镜像 Docker 核心技术 ...
- 转:eclipse 设置Java快捷键补全
1.打开Eclipse,点击" Window - Preferences"; 2. 在目录树上选择"Java——Editor——Content Assist", ...
- DAY18、常用模块
一.random:随机数1.(0,1) 小数:random.random()2.[1,10] 整数:random.randint(1,10)3.[1,10) 整数:random.randrange(1 ...
- Mysql七种 JOIN 连接
内连接 SELECT <select_list> FROM TableA A INNER JOIN TableB B ON A.Key = B.Key 左外连接 SELECT <se ...
- Nginx+rtmp+ffmpeg 搭建推流服务器
1. 安装nginx服务器 1.1 clone $ brew tap denji/homebrew-nginx 1.2 安装 $ brew install nginx-full --with-rtmp ...