【发布时间】:2014-07-27 18:19:27
【问题描述】:
我正在使用 symfony2 命令作为 cron 作业向站点成员发送批量电子邮件。
实际代码:
$output->writeln('Before: '.(memory_get_usage() / 1024 / 1024));
$mailer->send($m);
$output->writeln('After: '.(memory_get_usage() / 1024 / 1024));
我的结果:
Before: 182.38 MB
After: 183.73 MB
每次我发送电子邮件时,swiftmailer 都会额外消耗 1+MB 的内存。这似乎不正确,但每次发送新消息时内存都会增加。我在这里做错了吗?
【问题讨论】:
-
+1 把有趣的东西放在桌子上
-
我们需要查看有关电子邮件的更多代码和详细信息。你在附加文件吗?您是否在电子邮件之间正确清除/重置内容?
-
没有附件,我在每次发送之间启动一个新的 Swift_Message 对象,因为电子邮件是为每个用户完全自定义的,但是在创建新消息对象时没有大量的内存丢失,它特别是使用 send() 函数的行为。我还禁用了节流器,甚至最后的 mail() 调用自己也没有成功。似乎它与未设置的对象有关,但仍在搜索代码
-
我发现如果我在传输的 send() 函数中注释掉事件调度程序代码,内存泄漏就会消失。所以这绝对是事件的问题..可能只会创建我自己的节流方法
标签: php symfony swiftmailer