我正在使用Iron.io推送队列。如果我使用这样的代码,请解释附件会发生什么:
Mail::queue( 'email', array('body' => 'msg body here'), function($message) {
$message
->to('email@gmail.com')
->subject('Subject')
->attach(storage_path() . '/file.mp4' );
});
如果文件很小(<100 KB),那么对这样一个页面的请求似乎非常快。如果文件大小为5MB,则请求需要几秒钟。因此,看起来Laravel序列化附件,将它们发送到Iron服务器,然后Iron将其发送回我的服务器,然后最终发送电子邮件。这是真的吗?
这不是我对队列的期望。我希望立即回复用户。我完全确定同步驱动程序已关闭且应用程序使用铁,因为我在iron.io仪表板中看到了消息。
顺便说一下,我使用ngrok调整来处理本地开发机器上的队列。也许这就是原因?
答案 0 :(得分:0)
我不确定Mail :: queue是否会转到IronMQ,但是如果确实如此,我认为您希望以一种身体不会随其发送的方式进行设置。< / p>
不是排队邮件,而是排队电子邮件的元数据,例如:
Queue::push(new SendEmail($message, $filepath));
然后,当推送回到您的应用时,SendMail可以拨打同步发送邮件:
Mail::send( 'email', array('body' => 'msg body here'), function($message) {
$message
->to('email@gmail.com')
->subject('Subject')
->attach(storage_path() . $filepath );
});
我不是一个PHP人,所以代码可能有点偏,但它应该传达这个想法。