Laravel 队列功能 简单应用
2024-09-01 18:21:06
生成任务类
默认情况下,应用程序的所有可排队任务都存储在 app/Jobs 目录下。如果 app/Jobs 目录不存在,则会在运行 make:job Artisan 命令时将创建它。你可以使用 Artisan CLI 生成一个新的队列任务:
php artisan make:job ProcessPodcast
<?php namespace App\Jobs; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Log; class ProcessPodcast implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $message; /**
* Create a new job instance.
* 创建一个新的job实例
* @return void
*/
public function __construct(string $message)
{
$this->message = $message;
} /**
* Execute the job.
* 执行job
* @return void
*/
public function handle()
{
Log::info($this->message);
}
}
运行队列处理器 (worker)
Laravel 包含一个队列工作器,它将在新任务被推入队列时处理它们。您可以使用 queue:work Artisan 命令运行 worker。请注意,一旦 queue:work 命令已经启动,它将一直运行,直到它被手动停止或你关闭你的终端:
php artisan queue:work
在控制器中加入一个测试方法,直接调用队列类的 dispatch方法,类似生产了一个任务
use App\Jobs\ProcessPodcast; public function test() {
ProcessPodcast::dispatch('TestController test message');
}
队列执行结果:新增了一条test message log
最新文章
- Excel画的图复制到Word中变形的解决办法
- string literals may have at most 255 elements
- 【Debug 报异常】Debug打断点报错
- 第三章 深入 ZAB 协议
- unix/linux进程详解
- 严重: IOException while loading persisted sessions: java.io.EOFException
- 未能加载文件或程序集“Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。 解决方法
- Tarjan求极大强连通分量模板
- WPF、WinForm(C#)多线程编程并更新界面(UI)(转载积累)
- 商业模式画布及应用 - MBA智库文档
- 第三方系统打开EAFC的实现
- vsphere client 虚拟机安装操系统
- mysql 赋给用户权限 grant all privileges on
- .Net WebApi基本操作
- JSP小记
- touchmove Bug 工作遇到
- 关于MySql中使用IFNULL()函数失效的问题。
- MTK机器原始OTA更新方法
- [Swift]LeetCode27. 移除元素 | Remove Element
- 解析:为什么程序员应该有一台Mac个人电脑?
热门文章
- HTTP头Content-Type类型记录
- 146. LRU 缓存机制 + 哈希表 + 自定义双向链表
- 剑指 Offer 09. 用两个栈实现队列 +java中栈和队列的使用
- SpringMVC执行流程及源码分析
- WPF 基础 - 在模板中找元素
- Java数组:多维数组(二维),Arrays类,冒泡排序
- 动态规划-最长公共上升子序列-n^2解法
- 痞子衡嵌入式:盘点国内车规级MCU厂商
- 内置了一个缓冲区(数组)缓冲流BufferInputStream为何要配合字节数组的使用?
- PTE准备的时候,用英式英语还是美式英语