【问题标题】:Laravel Mail::queue Exception with message 'Allowed memory size of 268435456 bytes exhaustedLaravel Mail::queue 异常,消息“允许的内存大小为 268435456 字节已用尽
【发布时间】:2018-03-09 11:34:13
【问题描述】:

在我的 laravel 应用程序中,我创建了一个用于发送电子邮件的助手。

助手代码:

public static function send_email($page,$subject,$email,$email_data) {
      try {

        $site_url=url('/');

        $email_data['site_url'] = $site_url;

        Mail::queue($page, array('email_data' => $email_data), function ($message) use ($email, $subject) {
                $message->to($email)->subject($subject);
        });

        \Log::info("Email Sent ");

    } catch(\Exception $e) {

        \Log::info("Email Error ".print_r($e , true));

        return Helper::error_message(109);
    }
}

在我的邮件功能停止工作并给出此异常错误消息之后,我试图通过 composer update 命令更新作曲家:

[2018-03-09 11:21:22] local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' 
with message 'Allowed memory size of 268435456 bytes exhausted 
(tried to allocate 252182528 bytes)' in /home/ubuntu/thumbtack-base/app/Helpers/Helper.php:708
Stack trace:
#0 {main} 

我的代码有什么问题?

【问题讨论】:

  • 您使用的是哪个版本?
  • 它的 Laravel 5.2.45

标签: php laravel laravel-5 laravel-mail


【解决方案1】:

2 种可能的情况。
1) 你进入了一个无限循环,耗尽你的记忆。
2)您正在耗尽您设置的内存限制。

如果您在升级 laravel 时升级了 php,请记住 php 5.6 && 5.7 对您可以使用的内存设置了限制。
检查您拥有的memory_limit
如果你通过 nginx 运行 laravel,还要确保 memory_limit 设置为 nginx

【讨论】:

  • 网站托管在 Apache2 上
  • 在我的例子中是 256M。我应该在这里设置什么值?没有想法。
  • 这是我无法回答的问题。这取决于您的邮件功能以及您要发送多少封邮件。以 1 GB 为例
  • 在这种情况下,你应该开始调试东西。当你更新 laravel 时出现了问题。尝试检查 laravel github 上的旧问题
猜你喜欢
  • 2011-04-23
  • 1970-01-01
  • 2012-12-27
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 2020-04-10
  • 2014-03-07
相关资源
最近更新 更多