在简单介绍完驻列後,我要将原本的寄信流程改为使用驻列来寄信。
使用资料库做驻列
env.档案中的QUEUE_CONNECTION改为:QUEUE_CONNECTION=database
php artisan queue:table
php artisan migrate
做出可以储存在驻列中的工作
php artisan make:job SendEmail
把寄送email的过程改写到SendEmail的逻辑中
class SendEmail implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $invitedMember;
protected $project;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(User $invitedMember, Project $project)
{
$this->invitedMember = $invitedMember;
$this->project = $project;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
Mail::to($this->invitedMember->email)
->send(new InvitationInformed($this->invitedMember, $this->project));
}
}
class ProjectInvitationController extends Controller
{
public function store(InvitationRequest $request, Project $project)
{
$validated = $request->validated();
$invitedMember = User::whereEmail($validated['email'])->first();
SendEmail::dispatch($invitedMember,$project);
$project->invite($invitedMember);
return redirect(route('project.show', compact('project')));
}
}
php artisan queue:work
参考文章:
Your Guide to Laravel Email Queues
看完这篇文章你会得到的成果图 前言 我们接下来的讨论,会基於读者已经先读过我 day5 文章 的架构...
甚麽是例外处理? 当Python在执行的时候,如果遇到无法处理的状况就会出现错误,导致整个程序卡住。...
今天来简单说明网路架构的演进 在浏览器出现以前,使用的是C/S(Client-Server mode...
社群软件的用户间交谈讯息是如何做到资讯安全保护? 关於端对端加密 隐私与安全对我们来说极度重要,因此...
同步执行 目前写的程序都是一行接着一行一行执行,这种执行的方式叫做 同步执行 print("...