繁体   English   中英

在 Laravel 中,如何在不使用(队列和作业)的情况下从 controller 异步发送 email?

[英]In Laravel, how can i send an email asynchronously from a controller without using (Queues & Jobs)?

我想在用户注册后立即发送 email,而不会出现由 Mail::send() 引起的延迟。
我不想在几秒钟后发送 email,我希望它立即发送,但不会阻止正在发送它的 controller,为了 Laravel 的爱,请不要排队。

您可以使用通知来避免工作。 但是您仍然需要设置队列以使其异步。

$user->notify(new OrderPuchased($order));

在这种情况下您可以使用部分响应(如果您使用的是 apache web 服务器)

请参阅此以获取更多信息。

如何在后台调用 function codeigniter

到目前为止,我找到了两种解决方法:

fastcgi_finish_request:
我可以使用fastcgi_finish_request()但只有在我返回/回显视图之后(我正在使用 Laravel),在这种情况下我必须更改我的代码结构以处理不同的情况。 如果出现任何问题,当然还要与error_get_last()一起使用。

laravel 异步邮件:
令人惊讶的是,我发现在 Packagist.com 上,看到源代码它启动了一个新进程来启动一个工匠命令。 (如果这对生产环境有不利影响,我希望有人能给出意见)。
我现在的选择是这个,因为它完全符合我的要求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM