tp5消息队列使用
composer 安装 扩展包
composer require topthink/think-queue
注意版本:默认安装5.1的扩展包
地址:
https://packagist.org/packages/topthink/think-queue#v1.1.4
仔细看官方示例即可.....
新建队列文件
<?php
namespace app\admin\controller; use think\queue\Job;
use think\Db; class Work{ public function fire(Job $job, $data)
{
$isJobDone = $this->send($data);
if ($isJobDone) {
//成功删除任务
$job->delete();
} else {
//任务轮询4次后删除
if ($job->attempts() > 3) {
// 第1种处理方式:重新发布任务,该任务延迟10秒后再执行
//$job->release(10);
// 第2种处理方式:原任务的基础上1分钟执行一次并增加尝试次数
//$job->failed();
// 第3种处理方式:删除任务
$job->delete();
}
}
} /**
* 根据消息中的数据进行实际的业务处理
* @param array|mixed $data 发布任务时自定义的数据
* @return boolean 任务执行的结果
*/
private function send($data)
{
$result = Db::name('order_queue')->insert([
'utime' =>time(),
'email' =>$data
]);
if ($result) {
return true;
} else {
return false;
}
}
} ?>
业务文件:
public function queue()
{
// \think\Queue::push('app\admin\controller\Queue@fire', '284560@qq.com', $queue = '777');
// \think\Queue::push('app\common\queue\QueueClient@sendMAIL', '28456049@qq.com', $queue = null);
\think\Queue::push('app\admin\controller\Work@fire', '28456049@qq.com', $queue = '好队列');
echo 'ok';
}
后台监听:
php think queue:listen
tp5消息队列使用的更多相关文章
- think queue 消息队列初体验
使用的是tp5 自带的消息队列 thinkphp top里的 消息队列框架 think-queue 这是thinkphp官方团队开发的一个专门支持队列服务的扩展包 消息队列应用场景: 消息队列适用于 ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- 消息队列 Kafka 的基本知识及 .NET Core 客户端
前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息 ...
- .net 分布式架构之业务消息队列
开源QQ群: .net 开源基础服务 238543768 开源地址: http://git.oschina.net/chejiangyi/Dyd.BusinessMQ ## 业务消息队列 ##业务消 ...
- 【原创经验分享】WCF之消息队列
最近都在鼓捣这个WCF,因为看到说WCF比WebService功能要强大许多,另外也看了一些公司的招聘信息,貌似一些中.高级的程序员招聘,都有提及到WCF这一块,所以,自己也关心关心一下,虽然目前工作 ...
- Java消息队列--ActiveMq 实战
1.下载安装ActiveMQ ActiveMQ官网下载地址:http://activemq.apache.org/download.html ActiveMQ 提供了Windows 和Linux.Un ...
- Java消息队列--JMS概述
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
- 消息队列性能对比——ActiveMQ、RabbitMQ与ZeroMQ(译文)
Dissecting Message Queues 概述: 我花了一些时间解剖各种库执行分布式消息.在这个分析中,我看了几个不同的方面,包括API特性,易于部署和维护,以及性能质量..消息队列已经被分 ...
- Netty构建分布式消息队列(AvatarMQ)设计指南之架构篇
目前业界流行的分布式消息队列系统(或者可以叫做消息中间件)种类繁多,比如,基于Erlang的RabbitMQ.基于Java的ActiveMQ/Apache Kafka.基于C/C++的ZeroMQ等等 ...
随机推荐
- gulp的使用介绍及技巧
gulp的使用介绍及技巧 转载: https://www.cnblogs.com/2050/p/4198792.html 1.gulp的安装 首先确保你已经正确安装了nodejs环境.然后以全局方式安 ...
- Perl中命令行参数以及打开管道文件
打开管道文件 Linux提供了管道机制,可以方便应用程序之间的数据传递.在Perl中,扣开和使用管道可采用如下形式的open函数: open(Filehandle,”丨 CMD”); 其中 ...
- 【selenium2】【unittest】
#栗子 from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver ...
- mac终端不好用?用brew神器代替
一.概念 Brew是一款Mac OS平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能.简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷. 官 ...
- python连接MongoDB(有密码有认证)
from pymongo import MongoClient host = '127.0.0.1' client = MongoClient(host, ) #连接mydb数据库,账号密码认证 db ...
- 动态LINQ(Lambda表达式)
1.准备数据实体 public class Data { public string AccountNO { get; set; } public int Count { get; set; } } ...
- VS2010_慢
ZC:IntelliSense 一旦关闭,代码提示 也就没有了... ZC:IntelliSense 和 IntelliTrace,不是一个东西... 1.http://blog.csdn.net/c ...
- Javascript 常用设计模式
转载自:https://blog.csdn.net/buptlyz/article/details/52018193 单例模式(模块模式):确保始终只创建一个实例的对象时使用的设计模式. 为什么需要采 ...
- Integer与int区别
Integer与int的区别:估计大多数人只会说道两点,一开始我也不太清楚,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i ...
- Python数据分析-Day1-Numpy模块
1.numpy.genfromtxt读取txt文件 import numpyworld_alcohol = numpy.genfromtxt("world_alcohol.txt" ...