当前位置: 首页 > news >正文

Laravel5.4 Queues队列学习

Laravel提供了开箱即用的队列服务,队列允许您延迟处理耗时的任务,例如发送电子邮件,直到稍后的时间。推迟这些耗时的任务会大大加速您的应用程序的Web请求。

一、生成队列表

php artisan queue:table

php artisan migrate

二、生成Job类

这里我们给发送邮件操作添加队列操作

php artisan make:job SendReminderEmail

SendReminderEmail.php

<?php

namespace App\Jobs;

use App\Models\User;
use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;

class SendReminderEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected  $user;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct(User $user)
    {
        $this->user = $user;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        // 打印调试
        \Log::info('send remind email to' . $this->user->email);
    }
}

我们以 User Model为例,先在构造器方法中注入User 类,然后在UsersController.php 中使用dispatch 加入到队列中,dispatch(new SendReminderEmail($user));

添加到队列后,我们需要在handle() 方法中处理具体的业务逻辑,如给具体的用户对象发送邮件,最后执行队列命令,即可发送邮件。

php artisan queue:work 

相关文章:

  • 编程规范(一 之kmalloc,fflush,fclose,char_init)
  • Linux Shell远程执行命令(命令行与脚本方式)
  • 互联网企业安全高级指南3.3 如何推动安全策略
  • Excel导出纵向表格(poi)
  • POJ2584_T-Shirt Gumbo(二分图多重最大匹配/最大流)
  • 以精益的眼光重新关注电子商务
  • leetcode-000-序
  • cropper使用在线图片的问题
  • 在SAE搭建Python+Django+MySQL(基于Windows)
  • Java 单例模式
  • TP5分页类
  • 新CSS伪类:focus-within
  • 如果一个人
  • xmemcached 0.60 优化过程
  • 生产环境硬件使用总结
  • bearychat的java client
  • CAP 一致性协议及应用解析
  • CentOS7简单部署NFS
  • co.js - 让异步代码同步化
  • Docker: 容器互访的三种方式
  • jdbc就是这么简单
  • leetcode46 Permutation 排列组合
  • Linux链接文件
  • MYSQL 的 IF 函数
  • MySQL用户中的%到底包不包括localhost?
  • 给新手的新浪微博 SDK 集成教程【一】
  • 什么是Javascript函数节流?
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 选择阿里云数据库HBase版十大理由
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (剑指Offer)面试题34:丑数
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • .gitattributes 文件
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .net core开源商城系统源码,支持可视化布局小程序
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @Autowired @Resource @Qualifier的区别
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [ 常用工具篇 ] AntSword 蚁剑安装及使用详解
  • [.NET]桃源网络硬盘 v7.4
  • [202209]mysql8.0 双主集群搭建 亲测可用
  • [Android]使用Retrofit进行网络请求
  • [BZOJ]4817: [Sdoi2017]树点涂色
  • [C#]C# winform实现imagecaption图像生成描述图文描述生成
  • [JavaEE系列] wait(等待) 和 notify(唤醒)
  • [JS入门到进阶] 哎,被vite小坑了一波,大家记得配置build.cssTarget为‘chrome61‘
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)
  • [Latex] Riemann 问题中的激波,接触间断,膨胀波的 Tikz 绘图
  • [Oh My C++ Diary]头文件使用之math.h与cmath
  • [Python] 什么是KMeans聚类算法以及scikit-learn中的KMeans使用案例