Laravel 队列的简单使用例子
场景:
在一个a系统中注册一个用户时,发送请求到b系统中也注册一个相同信息的账号,考虑到网络有可能错误的原因,所以使用队列去处理
1.修改根目录 .env 文件的QUEUE_CONNECTION字段配置 为database
其中sync为同步,database为使用数据库,后面三种为第三方队列服务,最后一种为不使用队列。
通过在 .env 中的 QUEUE_CONNECTION 选项,来决定选择何种驱动。
如 QUEUE_CONNECTION=database 即为选择数据库驱动队列。

2.创建数据库队列表(database方式)
为了使用 database 队列驱动,你需要一张数据表来存储任务。
php artisan queue:table
php artisan migrate
生产一张队列表

3.生成任务类
在你的应用程序中,队列的任务类都默认放在 app/Jobs 目录下。
如果这个目录不存在,那当你运行 make:job Artisan 命令时目录就会被自动创建。
你可以用以下的 Artisan 命令来生成一个新的队列任务:
php artisan make:job SynUser

4.在队列类里面的handle方法中写上业务逻辑(比如发送网络请求,发送邮件等等,这里简单写个日志代替)
protected $message;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($message)
{
$this->message = $message;
} /**
* Execute the job.
*
* @return void
*/
public function handle()
{
\Log::info($this->message);
}
5.在控制器中加入一个测试方法,直接调用队列类的 dispatch方法,类似生产了一个任务
public function test()
{
SynUser::dispatch('发送请求到b系统生成账号');
}
这时,由于队列还没开启,数据库的队列表中会有一个任务,等待队列启动后执行

6.执行命令开启队列
php artisan queue:work
这时,队列表中的任务执行后就会自动删除了,类似消费了任务

以上是抛转引玉的一个简单例子,具体细节可以查看laravel的队列文档
Laravel 队列的简单使用例子的更多相关文章
- laravel 5.1 简单配置例子
这里演示5.1版本 一.数据库配置 .env文件(也可以直接修改config/database.php) DB_HOST=localhost DB_DATABASE=test //数据库名称 DB_ ...
- Laravel 队列功能 简单应用
生成任务类 默认情况下,应用程序的所有可排队任务都存储在 app/Jobs 目录下.如果 app/Jobs 目录不存在,则会在运行 make:job Artisan 命令时将创建它.你可以使用 Art ...
- Laravel 队列使用
触发 任务的触发,主要的实现是在IlluminateFoundationBusDispatchesJobs这个trait中实现的,其只包含两个方法 protected function dispatc ...
- TODO:Laravel 内置简单登录
TODO:Laravel 内置简单登录 1. 激活Laravel的Auth系统Laravel 利用 PHP 的新特性 trait 内置了非常完善好用的简单用户登录注册功能,适合一些不需要复杂用户权限管 ...
- 简单的例子了解自定义ViewGroup(一)
在Android中,控件可以分为ViewGroup控件与View控件.自定义View控件,我之前的文章已经说过.这次我们主要说一下自定义ViewGroup控件.ViewGroup是作为父控件可以包含多 ...
- CSharpGL(1)从最简单的例子开始使用CSharpGL
CSharpGL(1)从最简单的例子开始使用CSharpGL 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo ...
- 用一个简单的例子来理解python高阶函数
============================ 用一个简单的例子来理解python高阶函数 ============================ 最近在用mailx发送邮件, 写法大致如 ...
- Spring-Context之一:一个简单的例子
很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动.现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架.Spring框架这几年来已经发展成为一个巨无霸产品.从最初的 ...
- C#调用存储过程简单完整例子
CREATE PROC P_TEST@Name VARCHAR(20),@Rowcount INT OUTPUTASBEGIN SELECT * FROM T_Customer WHERE NAME= ...
随机推荐
- jmeter的安装教程
JMETER安装教程 jmeter的安装教程 1:安装jdk并且配置好环境变量,此处就不做赘述(前面的文档中有) 2:下载jmeter文件和jmeter的插件文件 JMeter:http://jmet ...
- logstash 6.6.0 读取nginx日志 插入到elasticsearch中
logstash.conf input { # For detail config for log4j as input, # See: https://www.elastic.co/guide/en ...
- vue中使用animate.css实现动画
参考链接:https://www.cnblogs.com/ccyinghua/p/7872694.html 参考链接:https://www.jianshu.com/p/2e0b2f8d40cf 使用 ...
- [学习笔记] 下载、安装、启动 Eclipse(OEPE)
OEPE 的全称是: Oracle Enterprise Pack for Eclipse 截止目前的最新版本是:(12.2.1.9) 下载地址:(需要在甲骨文官网注册一个账户才能下载) https: ...
- R画柱形图和箱线图
数据格式如下 gene_id Sham-1 Sham-2 Sham-3 Sham-4 Sham-5 Rep-1h-1 Rep-1h-2 Rep-1h-3 Rep-1h-4 Rep-1h-5 Rep-3 ...
- [转帖]oracle补丁类型
oracle补丁类型 https://www.cnblogs.com/liang545621/p/9417919.html 介绍挺好的 跟现在的也比较类似呢. 名称 说明 Release ¤ 标准 ...
- Windows 下配置 ApacheBench (AB) 压力测试
下载 http://httpd.apache.org/download.cgi 我用的是ApacheHaus. 安装服务 1. 打开apache目录下的 conf/httpd.conf,搜索并修改 L ...
- idea 默认全局配置maven,避免每次新建项目都需要指定自己的maven目录
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_28624243/article/details/84199937 File->Oth ...
- Python-05-字符串格式化
一.百分号方式 %[(name)][flags][width].[precision]typecode (name) 可选,用于选择指定的key flags 可选,可供选择 ...
- 怎样通过正则匹配IP地址
Ipv4的地址是0.0.0.0 到 255.255.255.255, 匹配这个字段需要判断三种情况: 1. 如果第一位是0或1, 则第二位和第三位可以是0-9的任意数值: [01]\d\d 2. 如果 ...