一.设置存储方式

  在config/queue.php中查看队列驱动,在.env 设置【QUEUE_DRIVER】

  主要介绍数据库驱动

二.数据库驱动

  1.修改.env

CACHE_DRIVER=file // 这个值按理不会影响队列使用,但测试的时候发现,这个值设为redis,且redis服务未启动,在执行php artisan queue:work会出现连接redis失败的错误,因此当QUEUE_DRIVER不为redis时,CACHE_DRIVER也不能为redis。原因不明
QUEUE_DRIVER=database

  2.创建job表

  php artisan queue:table
  php artisan migrate

我在重新测试的时候,执行php artisan queue:table

报错:include(\vendor\composer/../../database/migrations/2017_03_31_165417_create_jobs_table.php,

解决:composer dump-autoload

  3.创建任务文件

php artisan make:job insertJob

  查看生成的文件:app\Jobs\InsertJob.php

<?php

namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Support\Facades\DB; class InsertJob implements ShouldQueue
{
use InteractsWithQueue, Queueable, SerializesModels; /**
* Create a new job instance.
*
* @return void
*/
public function __construct(){} /**
* 执行任务代码
*
* @return void
*/
public function handle()
{
DB::table('comments')->insert(['content'=>'测试任务']);
}
}

  4.在控制器中调用任务

app\Http\Controllers\TestJobController.php

<?php
namespace App\Http\Controllers;
use Carbon\Carbon;
use App\Jobs\InsertJob; class TestJobController extends Controller
{
public function testJob()
{
// 表示一分钟后执行任务
$job = (new InsertJob())->delay(Carbon::now()->addMinute(1));
dispatch($job);
}
}

访问相应路由后,在jobs表会生成一条待执行任务的数据:

  5.启用任务队列

php artisan queue:work

一分钟后出现:

说明执行成功,jobs表中的任务数据被删除,comments表新增了一条数据

  6.如果只是先把任务放入队列,之后再手动执行任务(可以和定时任务配合使用)

$job = (new SendReminderEmail())->onQueue('high');
dispatch($job);
php artisan queue:work --queue=high,low #指定要执行的队列名

三.redis驱动,流程和数据库驱动一样,只是不用建表,不详叙

Laravel --- Laravel 5.3 队列使用方法的更多相关文章

  1. Laravel 5.2 教程 - 队列

    一.简介 Laravel 队列组件提供一个统一的 API 集成了许多不同的队列服务,队列允许你延后执行一个耗时的任务,例如延后至指定的时间才发送邮件,进而大幅的加快了应用程序处理请求的速度. 由于本例 ...

  2. laravel的延迟消息队列

    laravel的延迟消息队列 这篇来自于看到朋友转的58沈剑的一篇文章:1分钟实现"延迟消息"功能(http://mp.weixin.qq.com/s?__biz=MjM5ODYx ...

  3. 使用 Composer 安装Laravel扩展包的几种方法

    使用 Composer 安装Laravel扩展包的几种方法 以下的三种方法都是需要你在项目的根目录运行 第一种:composer install 如有 composer.lock 文件,直接安装,否则 ...

  4. php laravel v5.1 消息队列

    * install https://laravel.com/docs/5.1#installationcomposer create-project laravel/laravel msgq &quo ...

  5. [Laravel] Laravel的基本数据库操作部分

    [laravel] laravel的数据库配置 找到程序目录结构下.env文件 配置基本的数据库连接信息 DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=blog ...

  6. [Laravel] Laravel的基本使用

    [Laravel] Laravel的基本HTTP路由 使用Laravel的基本路由,实现get请求响应,找到文件app/Http/routes.php 调用Route的静态方法get(),实现get响 ...

  7. java中PriorityQueue优先级队列使用方法

    优先级队列是不同于先进先出队列的另一种队列.每次从队列中取出的是具有最高优先权的元素. PriorityQueue是从JDK1.5开始提供的新的数据结构接口. 如果不提供Comparator的话,优先 ...

  8. laravel/laravel和laravel/framework有何区别?

    在安装laravel的时候,我们一般是download github上的laravel/laravel,随后执行composer install,在这个过程中,你会发现composer其中的一项工作是 ...

  9. 《转》JAVA中PriorityQueue优先级队列使用方法

    该文章转自:http://blog.csdn.net/hiphopmattshi/article/details/7334487 优先级队列是不同于先进先出队列的另一种队列.每次从队列中取出的是具有最 ...

  10. 用composer安装 Laravel | Laravel需要的环境配置

    一:安装 参考网站 http://v4.golaravel.com/docs/4.2/installation 1.先确保安装好了PHP,和服务器环境 2.然后下载composer可执行文件到当前目录 ...

随机推荐

  1. [Example of Sklearn] - Example

    reference : http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据 ...

  2. dwc_otg驱动 "BUG: sleeping function called from invalid context at mm/page_alloc.c"

    方案商的开发板上otg功能只能做device,硬件看过后说没有5v供电,加上后能够识别U盘了,但是内核报了错 [ 3.264000] usb 2-1: new high-speed USB devic ...

  3. Windows多线程系列

    来自CSDN - 秒杀多线程系列.覆盖了Windows系统的线程同步机制.对于理解各种锁以及多线程典型场景很有帮助.

  4. 在.net MVC项目的区域中使用模板页

    1.首先 在网站的区域目录areas下   的   区域目录下的 Views目录下新建一个 _ViewStart.cshtml文件 如下图所示: 2.在shared文件下新建一个视图作为Layout ...

  5. Java中定时器

    import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask ...

  6. WPF用Blend写的交通信号灯

    原文:WPF用Blend写的交通信号灯 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yangyisen0713/article/details/1 ...

  7. 圆周卷积(circular convolution)

    1. 定义与概念 圆周卷积也叫循环卷积, 2. 实现(matlab) 以圆周的形式卷积两个信号: >> z = ifft(fft(x).*fft(y));

  8. cefsharp 与webbrowser简单对比概述

    原文:cefsharp 与webbrowser简单对比概述 有个项目需要做个简单浏览器,从网上了解到几个相关的组件有winform自带的IE内核的WebBrowser,有第三方组件谷歌内核的webki ...

  9. krpano全球漫游相同的声音和声音添加的场景(文章内容已移至krpano中国网站)

    请关注微信订阅号 krpano   watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG1ob2s=/font/5a6L5L2T/fontsize/400/f ...

  10. sql server 2016 JSON 学习笔记

    虽然现在win服务器已经几乎不用了,但是网上看到2016开始原生支持json 还是想试试 建立一个表  id int , json varchar(2000) json字段中输入数据 {"r ...