laravel 队列学习笔记

Laravel8 学习笔记 :维护模式 Laravel8.0 学习笔记 注:一切资料来自于 Laravel 社区,个人只是一边学习一边总结。 文章目录Laravel8.0 学习笔记前言一、如何使用维护模式?二、跳过维护模式三、预渲染视图总结 前言 什么是维护模式? 字面意思,如游戏大更新时的维护一样。 为什么需要维护模式? 像是游戏日常维护那样。维护模式方便于我们工作人员排除各种可能出现的Bug,避免用户在使用时出现问题。 一、如何使用维护模式? 要启用维护模式的话,只需要执行下面的命令。 php artisan down 这样,Lar 阅读详情
参考:

1、Laravel 5.4 文档 综合话题 —— 队列
2、PHP的Laravel框架中使用消息队列queue及异步队列的方法_php实例
3、Laravel之队列

对列作用
队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短Web请求和相应的时间。
队列进程原理:写一个死循环的脚本在Linux系统持续运行,新的队列任务push到这个脚本中。
一、配置
    队列 配置文件存放在config/queue.php 。在该文件中你将会找到框架自带的每一个队列驱动的连接配置,包括数据库、
Beanstalkd、 IronMQ、 Amazon SQS、 Redis 以及同步(本地使用)驱动。其中还包含了一个 null 队列驱动以拒绝队
列任务。默认是sync,即同步的,直接处理,无队列.要将其修改为对应的类型,如database等。
这次主要探讨 使用database 保存队列任务。 

// 在.env 文件中修改:
QUEUE_DRIVER=database

// 清除配置缓存。这是个巨坑,测试时因为没执行这一步导致配置不生效,懵逼了许久
php artisan config:cache
二、依赖
1.数据库依赖:为了使用database 队列驱动,需要一张数据库表来存放任务,要生成创建该表的迁移,
运行 Artisan 命令queue:table ,迁移被创建好了之后,使用migrate 命令运行迁移:
php artisan queue:table
php artisan migrate

// 数据库会生成以下两张表:
jobs
migrations 
2.其他队列类型依赖
下面是以上列出队列驱动需要安装的依赖:
• Amazon SQS: aws/aws-sdk-php ~3.0
• Beanstalkd: pda/pheanstalk ~3.0
• IronMQ: iron-io/iron_mq ~2.0
• Redis: predis/predis ~1.0

 

注意:
1、因为我使用两套环境(虚拟机、本地,两套环境共享项目目录),正常访问的是虚拟机的数据库。但使用 php artisan migrate 
相关命令时报 2002 拒绝连接错误 ,因为在控制台访问到了本地的数据库。所以数据库配置:
DB_HOST=localhost
修改为 具体的ip:
DB_HOST=192.168.82.52
清除缓存:
php artisan config:cache

2、报错:SQLSTATE[42000]: 1071 Specified key was too long; max key length is 767 bytes
动配置迁移生成的默认字符串长度,你可以通过调用 AppServiceProvider 中的 Schema::defaultStringLength 方法来配置它。
局部配置:在报错的迁移脚本中加 Schema::defaultStringLength(191);
全局配置:在App\Providers\AppServiceProvider 的boot方法加Schema::defaultStringLength(191);
三、生成任务类
1、通常,所有的任务类都保存在 app/Jobs 目录.如果 app/Jobs 不存在,在运行 Artisan 命令 make:job 的时候,
它将会自动创建。你可以通过 Artisan CLI 来生成队列任务类:

    php artisan make:job queueTest

生成的类 queueTest 都实现了 Illuminate\Contracts\Queue\ShouldQueue 接口, 
告诉 Laravel 将该任务推送到队列,而不是立即运行。
2、在 queueTest.php 的代码如下:
public function handle()
    {
        sleep(5);
        Zhang::insert([ 'name' => 'queue.' . time() .uniqid(), 'time' => time()]);
    }


// 在TestController.php 控制器的推送任务如下:
 public function queueTest()
    {
        for($i = 0; $i < 100; $i ++) {
            dispatch(new queueTest("ssss".$i));
        }
        exit('程序结束');
    }


// routes添加路由:
Route::get('/queue', 'TestController@queue' );
四、启动队列监听
基本命令:

    php artisan queue:listen  //监听队列请求,只要运行着,就能一直接受请求,除非手动终止;

其他类型的监听、守护进程请参考顶部资料。
五、测试成功
在浏览器开几个窗口同时访问该地址:localhost/queue , 出现以下情况说明队列任务推送成功:
 1、访问后,浏览器立即打印 '程序结束' ,说明任务已经压入队列;
 2、进入数据库查看jods表,会发现很多还没执行完的任务;
 3、在控制台会监听到正在运行的进程:
 [2018-01-03 11:53:46] Processing: App\Jobs\queueTest
 [2018-01-03 11:53:56] Processed:  App\Jobs\queueTest
 [2018-01-03 11:53:57] Processing: App\Jobs\queueTest
总结
以上只是对laravel队列的一些基础运用,队列的知识远远不止这些。如果你有好的例子分享,欢迎留言。
c#.net使用正则表达式验证文本中是否包含手机号码或电话号码? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Collections; namespace RegularPhoneApp { class Program 阅读详情

相关推荐

GBASE南大通用GBase 8s数据库-从零开始的手动安装与实例配置指南

本文详细介绍了GBASE南大通用GBase 8s数据库的手动安装与实例配置全过程,包括环境准备、用户创建、安装包准备、实例创建、环境变量配置等关键步骤。通过实战经验分享和常见问题解决方案,帮助用户快速掌握GBase 8s数据库的安装与配置技巧,确保数据库稳定运行。

weixin_29209825的博客 455

Laravel队列的用法

laravel队列 可分为【同步队列】和【延时队列】两种 一,默认QUEUE_DRIVER=sync 是同步的,使用delay延时队列不能使用同步的,否则不起作用。 要想使用延时队列必须把 QUEUE_DRIVER设置成 redis 或者 datebase 延迟才起作用 二,一般什么情况下会用到延迟队列呢?举个栗子(商城用户生成订单后没有付款三十分钟后取消订单,这个时候用延时队列来处理岂不快哉,或者群发邮件短信等一些耗时的操作时就需要用到延时队列,这样就可以减轻服务器的压力,减少等待时间) 三,创建任务类

qq_41688060的博客 6164

多路输出电源的交叉调整率:从理论到无源优化实践

本文深入探讨了多路输出电源中的交叉调整率问题,分析了其物理根源及无源优化方法。通过漏感与耦合的理论分析,结合加权反馈、电感耦合等五种无源优化技术,帮助工程师有效解决交叉调整率挑战。文章还以TDK-Lambda CUT75系列为例,展示了优化技术的实际应用与效果。

weixin_26886855的博客 281

laravel artisan 命令列表

laravel artisan 命令列表 命令 说明 备注 php artisan make:resource ? 创建api返回格式化资源 >=5.4版本可用 php artisan make:rule ? 创建validate规则 >=5.4版本可用 php artisan make:exception ? 创建异常类 >=5.4版本可用 php artisan make:factory ? 创建工厂类 >=5.4版本可用 php artisan

oschina_41772596的博客 1008

线性回归做糖尿病分析(diabetes数据集),并分析单个特征值与病情的关系

1.diabetes数据集 共442个样本,每个样本有十个特征,分别是 [‘age’, ‘sex’, ‘bmi’, ‘bp’, ‘s1’, ‘s2’, ‘s3’, ‘s4’, ‘s5’, ‘s6’],对应年龄、性别、体质指数、平均血压、S1~S6一年后疾病级数指标。 Targets为一年后患疾病的定量指标,值在25到346之间。 ...

t18438605018的博客 1万+

中心对数比变换(Centered Log Ratio Transformation,CLR)的原理及scikit-bio介绍

中心对数比变换(Centered Log Ratio Transformation,CLR)是一种数据预处理方法,常用于成分数据分析领域。在成分数据中,各成分之间通常存在一定的约束关系,比如它们的和为固定值等,中心对数比变换可以有效地处理这种具有特殊约束的数据。官方文档scikit-bio是一个在Python3中处理生物数据的库成分统计 (skbio.stats.composition )模块中的,此函数将组合从Aitchison几何体转换到真实空间。这个clr。

RECORD LEARN PROGRESS 1万+

laravel之任务队列

laravel之

xiaonanhaijing的博客 1241

2025小红书跳转卡片实战指南:从零搭建独立后台与自动化发卡系统

本文提供了一份2025年小红书跳转卡片的实战搭建指南,详细解析了独立后台系统的核心架构与自动化发卡流程。文章从零开始,手把手教你使用Node.js、Vue.js等技术栈构建包含后台管理、用户制卡中心与前端交互的完整系统,旨在帮助运营者实现合规引流,并掌握数据自主权与自动化运营能力。

weixin_29234423的博客 518

Laravel 框架中队列的使用

Laravel 框架内置了强大的队列系统,用于处理异步任务、提高系统性能等。队列可以让任务异步执行,而不会阻塞当前进程,可以提高系统的处理能力。Laravel 的队列系统支持多种驱动,如 Redis、Beanstalkd、SQS 等,可以根据自己的需求选择合适的驱动。定义任务是使用队列的关键。在 Laravel 中,任务通常是一个可序列化的 PHP 对象,该对象包含需要执行的任务的代码和数据。生成的任务类位于 app/Jobs 目录中,可以根据需要修改其中的 handle 方法来定义任务执行的逻辑。

hmx224_2014的专栏 2545

ComfyUI入门学习-教程篇

深入的 ComfyUI 教程,不同功能节点的详细指南。一个比较有意思的Comfyui教程,动画式学习。从安装到基础教程、高级教程再到各种工作流。非常全面,有教程有搭建好的工作流。

wincyfu的博客 1331

无人驾驶Autoware导读

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对无人驾驶Autoware介绍做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 2398

Laravel 实现 队列功能

在构建 Web 应用程序时,你可能需要执行一些任务,例如解析文件,发送邮件,大量的数据计算等等,这些任务在典型的 Web 请求期间需要很长时间才能执行。庆幸的是,Laravel 可以创建在后台运行的队列任务。通过将时间密集型任务移至队列,你的应用程序可以以极快的速度响应Web 请求,并为你的客户提供更好的用户体验。说人话:laravel可以轻松创建,后台运行的队列,再将耗时的任务移到队列,减少用户在页面上的等待时间,提高用户体验。

先完成,再完美—60分比0分强100倍 2018

YOLO11改进|注意力机制篇|引入ELA注意力机制

YOLO11添加ELA注意力机制

A1983Z的博客 3648

3. Laravel5学习笔记:laravel队列使用教程

在app服务端开发中,常常会遇到此种情况: 某一个大的任务中,可以分割为1,2,3,4个小任务,其中2的完成依赖1,4的完成依赖2。那么1、2、4可以理解为一个事务,必须依次执行,否则任务无法完成。但是任务3,与1、2、4没有关系,可以单独完成,谁先谁后也没有影响...... 这个时候可以用队列来提高程序性能。

大愚Talk 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Laravel 队列使用学习笔记

1.先删除或者备份.env的 QUEUE_DRIVER2.安装predis 具体命令: composer config -g repo.packagist composer https://packagist.phpcomposer.com composer require predis/predis ~1.0    3.生成数据库队列记录表 jobs 和 faile...

amygukg6872的博客 149

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

laravel学习笔记(四):队列任务的简单使用

1.配置.env使用哪种连接。 QUEUE_CONNECTION=database 此处的database会对应到config/queue.php的connections数组下面的键值 driver是队列使用的引擎 queue是队列名称 2.如果引擎是database,运行命令创建数据表 php artisan queue:table php artisan migrate 3.创建任务类 php artisan make:job SendMail ...

qq_34739614的博客 651

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

laravel学习笔记--消息队列

通过队列,你可以将耗时任务 (如发送电子邮件) 的处理往后推延。延迟这些耗时的任务可以极大地提升 web 请求响应速度 队列配置文件存储在 config/queue.php 中。 在这个文件中,你可以找到框架中包含的每个队列驱动程序的连接配置,其中包括数据库,Beanstalkd,Amazon SQS,Redis,和一个同步驱动程序(供本地使用)。还包括一个用于丢弃排队任务的 null 队列驱动 驱动程序说明和先决条件 数据库 要使用 database 队列驱动程序,需要一个数据库表来保存任务。要生成创

小信的博客 451

ubuntu学习笔记(4)之laravel使用supervisor实现异步队列

第一步 安装redis 此处推荐一篇详细的博文 Ubuntu14.04安装redis和简单配置 第二步 修改项目配置     在学习笔记(2)中已经新建的test项目     进入到项目文件根目录 cd /var/www/test     vim .env 添加下面配置     CACHE_DRIVER=redis       //缓存默认驱动     SESSION_DRI

lpy815563745的博客 442

Thinkphp和Laravel 基于云的学习笔记系统设计与开发

开发一个基于云平台的学习笔记系统,支持多终端访问、实时同步和协作编辑功能。系统采用 ThinkPHP 或 Laravel 框架实现后端逻辑,结合前端技术(如 Vue.js 或 React)构建用户界面。本系统后端采用 PHP 语言搭配Thinkphp或者 Laravel 框架,PHP 语法简洁且功能强大,Laravel 或者Thinkphp框架能优化代码结构、提升开发效率,高效实现系统核心逻辑与数据库交互。前端运用 Vue 框架,其组件化开发与响应式设计,可打造流畅交互界面。

QQ1304979694的博客 601

laravel中队列使用

Laravel 提供了强大的队列系统,允许开发者将耗时任务推送到后台执行,从而提升系统性能和用户体验。本文将从基本使用到深入解析,结合单进程队列的特点,完整地介绍 Laravel 队列的使用。队列的作用和场景。

蔡定努 1706

laravel 任务队列_Laravel 队列系统实现及使用教程

Laravel 队列系统实现及使用教程由 学院君 创建于2年前, 最后更新于 9个月前版本号 #248088 views10 likes0 collects简介注:Laravel 现在提供了基于 Redis 的,拥有美观的后台和配置系统的 Horizon 队列扩展包,完整信息参考 Horizon文档。Laravel 队列为不同的后台队列服务提供了统一的 API,例如 Beanstalk,Amazo...

weixin_29580355的博客 6533

laravel 多队列配置

在项目开发的时候免不了要使用多队列分别处理不同的业务,可是laravel中文文档没有具体介绍如何配置多队列。下面我们就聊聊laravel框架中使用redis驱动,配置多队列以及supervisor守护进程。 1.新建多个Jobs下队列任务 2.queue.php配置文件 ...

xiangweiqiang的博客 4673

laravel 任务队列_laravel 异步队列详解

异步队列:可以大幅度缩短 Web 请求和响应的时间。注意:本地安装配置redis扩展,且已经启动redis1、创建队列任务:php artisan make:job CloseOrder2、CloseOrder.php:namespaceApp\Jobs;useIlluminate\Bus\Queueable;useIlluminate\Queue\SerializesModels;use...

weixin_33206646的博客 2481

laravel队列

1 环境 Laravel是一种类似ThinkPHP的php框架,封装的诸多功能可以很方便的使用。队列Queue便是其中之一。 Windows环境下,可使用PHPstorm作为Laravel的集成开发环境IDE。 2 队列 Laravel可配置多种队列驱动,包括 "sync", "database", "beanstalkd", "sqs", "redis", "null"(具体参见app/config/queue.php) 其中sync为同步,database为使用数据库,后面三种为第三方队列服务

九步 2648

laravel 队列 默认队列 和 指定队列的区别

laravel 队列 默认队列 和 指定队列的区别 各位php小伙伴们好! 今天来分享一下 laravel 队列 默认队列 和 指定队列的区别。如果你有需要, 可以参考这篇文章,通过队列,你可以将耗时任务 (如发送电子邮件) 的处理往后推延。延迟这些耗时的任务可以极大地提升 web 请求响应速度。。当你有耗时的处理时就可以把这些耗时业务逻辑交给队列,然后给前端返回,剩下的交给队列慢慢去执行。以达到异步执行快速返回的目的。 开始使用 配置文件 laravel 像往常一样,使用任何服务先搞好配置文

weixin_41965781的博客 2210

Laravel框架的消息队列

这里以日常生活的排队取餐简单的理解一下连接队列队列任务的区别简单理解: 有固定的几家店(如Amazon SQSBeanstalk或Redis等…)简单理解:在店里可以有很多排队取餐的队伍,默认有一条排队的队伍简单理解:每个排队取餐的队伍,都有很多人,上一个人取餐完毕才能轮到下一个人,不能插队ps:这里需要注意的是,队列是可以设置优先级的,即多条排队取餐的队伍,其中的队伍就是设置优先取餐的ps:我们一般都是配置和使用Redis队列。

爱吃五花肉EMin的博客 1030
上一篇: MySQL复制表
下一篇: Win10 + VMware-CentOS7文件共享
小Z笔记
博客等级 码龄9年 11粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值