【发布时间】:2019-06-14 13:48:53
【问题描述】:
我在一个表中有超过 100 万行,我必须在 cron 作业中根据该查询进行查询并向用户发送电子邮件。我有这样的代码:
$start = 0;
$limit = 1000;
while ( true) {
$query_results = db_result("SELECT * FROM table LIMIT $start, $limit");
if (count($query_result) == 0) {
break;
}
foreach ( $query_result as $result) {
$email = $result ['email'];
send_email($email);
}
$start += $limit;
}
有没有更好更有效的方法来批量查询数百万行?如果脚本崩溃以避免向人们发送重复的电子邮件?如果脚本崩溃并再次重新运行,它将向剩余的人发送电子邮件,而无需我在上面的代码中进行数据库查找以检查每个人是否收到电子邮件?
每天都会发送电子邮件。根据每个人是否满足某些要求,它可能每天都会发送给同一个人。
【问题讨论】:
-
我很想似是而非地否决这个问题......我认为我的电子邮件地址是此类例程已经针对的数百万个电子邮件地址之一,我不希望发送电子邮件的例程更高效.
-
这就是为什么我要确保我不会重复发送!