无涯教程:Laravel8-队列介绍

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

⽆涯教程:Laravel8-队列介绍
有时,你发送电⼦邮件或站内消息⽐较费时,这时可以使⽤队列处理这些任务。

步骤1:下载Laravel 8
⾸先,我们需要使⽤下⾯命令获取最新的Laravel 8版本应⽤程序。

composer create-project --prefer-dist laravel/laravel blog
步骤2:创建邮件设置
我们将从头开始,并且第⼀步,我们将使⽤Laravel Mail Facade创建电⼦邮件进⾏测试。

因此,让我们简单地运⾏命令。

php artisan make:mail SendEmailTest
现在,您将在带有SendEmailTest.php⽂件的应⽤程序⽬录中拥有新⽂件夹"Mail"。

app/Mail/SendEmailTest.php
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class SendEmailTest extends Mailable
{
use Queueable, SerializesModels;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct()
{
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('emails.test');
}
}
好的,现在我们需要使⽤blade⽂件创建电⼦邮件视图。

resources/views/emails/test.blade.php
<!DOCTYPE html>
<html>
<head>
<title>How to send mail using queue in Laravel 8? - learnfk</title>
</head>
<body>
<center>
<h2 style="padding: 23px;background: #b3deb8a1;border-bottom: 6px green solid;">
<a href="https://">欢迎问我们的⽹站 : ⽆涯教程</a>
</h2>
</center>
<p>Hi, Sir</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
<strong>Thank you Sir. :)</strong>
</body>
</html>
配置完视图⽂件后,我们必须设置电⼦邮件发送函数,因此让我们在.env⽂件中设置配置: .env
MAIL_DRIVER=smtp
MAIL_HOST=
MAIL_PORT=587
MAIL_PASSWORD=123456
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME="${APP_NAME}"
步骤3:队列配置
⾸先,我们将队列驱动器设置为“database"。

您可以根据需要设置驱动程序,也将驱动程序定义为redis。

因此,这⾥在".env"⽂件上定义数据库驱动程序:
.env
QUEUE_CONNECTION=database
之后,我们需要⽣成迁移并为队列创建表。

因此,让我们为队列数据库表运⾏迁移命令:
⽣成迁移:
php artisan queue:table
运⾏迁移:
php artisan migrate
步骤4:创建队列作业
现在,我们将使⽤以下命令创建队列作业,此命令将使⽤Queueable创建队列作业⽂件。

php artisan make:job SendEmailJob
现在,您在“Jobs"⽬录中具有SendEmailJob.php⽂件。

因此,让我们看⼀下该⽂件,然后在该⽂件上添加以下代码。

app/Jobs/SendEmailJob.php
<?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 App\Mail\SendEmailTest;
use Mail;
class SendEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $details;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct($details)
{
$this->details = $details;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$email = new SendEmailTest();
Mail::to($this->details['email'])->send($email);
}
}
步骤5:测试队列任务
现在是时候使⽤并测试创建的队列作业了,所以让我们使⽤以下代码简单地创建路由来测试创建的队列。

routes/web.php
Route::get('email-test', function(){
$details['email'] = '';
dispatch(new App\Jobs\SendEmailJob($details));
dd('done');
});
确定路由定义,您可以使⽤Laravel Queue命令观看队列进程,因此让我们运⾏以下命令:
php artisan queue:listen
如果队列可⾏,您将看到以下内容:
您还可以使⽤以下命令清除Config Cache:
php artisan config:clear
现在,您可以使⽤以下命令运⾏项⽬:
php artisan serve
现在运⾏您的项⽬和打开链接:。

相关文档
最新文档