我的网站用户超过35,000,可以选择接收优惠券,优惠,折扣和其他一些信息。
我有一个很大的问题,名单太大了!
几个月前,我只想做一个for-each,一切都很好,但是现在,显然脚本已经超时了。
这是一个真实的例子:
...
$every_email = $this->ads_model->getAllEmails();
foreach ($every_email as $duty) {
$this->dispatcher_model->addDispatch($duty, $header, $body);
$i++;
}
...
任何建议,服务或更好的代码改进?
答案 0 :(得分:2)
php-script通常会限制执行时间来杀死卡住的处理。 您可以将其设置得更长,请参阅http://php.net/manual/en/function.set-time-limit.php。 另外,我会像其他人一样严格建议用块分割你的大列表,并使用cron单独运行你的php处理每个块。
答案 1 :(得分:0)
我建议不要在一次脚本调用期间发送所有电子邮件。
安排应该解决您的问题 例如,您可以在列表中使用一个或多个队列。
然后,您的发送脚本可以由cronjob触发,并以例如发送邮件的方式发送邮件。 100封邮件。