|
|
|
|
|
для: Bronepoz[)
(03.12.2005 в 13:46)
| | $massmail[stop] берется из графы таблицы заданий на рассылку. то есть если к примеру на сайте зарегино 4000 пользователей, а мне надо отправить только 200, то $massmail[stop] будет равна 200. так что если ей конкретно указать 100, то и рассылка будет идти только 100 пользователям.
конечно если как то извернутся то можно попробовать использовать этот вариант.
насчет set_time_limit(0); пробовал, она почиму то игнорируется.
вообще основной нагруз идет по памяти, у меня такая мысля мелькнула, в php.ini выставлено использовать память для выполнения скрипта 8М, а если поставить 16 или 32М, то это как то может спасти ? | |
|
|
|
|
|
|
|
для: Valeri
(01.12.2005 в 03:30)
| | А не проще убрать лимит времени функцией set_time_limit(0); | |
|
|
|
|
|
|
|
для: Valeri
(03.12.2005 в 13:19)
| | А я так понял у вас что-то похожее уже делается. Т.е. за цикл формирует запрос
<?php
$users=@mysql_query("select signup_date,signup_ip_host,password,first_name,last_name,email,email_setting,".mysql_prefix."users.username from ".mysql_prefix."users where email_setting>=0 and account_type!='canceled' and vacation<'$curdate' order by signup_date limit $thisstart,$massmail[stop]");
?>
|
Конструкция limit начинает выборку с позиции $thisstart и выполняет $massmail[stop] позиций. Т.е. $massmail[stop] должно быть равно 100. | |
|
|
|
|
|
|
|
для: cheops
(03.12.2005 в 13:04)
| | вообще то по идеи цикл рассылки идет тут
<?
if ($user['email_setting']>0){
sendmassmail($user[email],trim($subject),trim($message), "Return-Path: ".massmail_email."\nFrom: \"".system_value('site_name')."\" <".system_value("massmail_email").">\nReply-To: ".system_value("massmail_email")."\nX-Mailer: Cash Crusader\n".$high);
list($junk,$emaildomain)=split("@",$user[email]);
$emaildomainct[$emaildomain]++;
}}
@mysql_query("update ".mysql_prefix."mass_mailer set current=current+1 where massmailid=$massmail[massmailid]");
}
?>
|
| |
|
|
|
|
|
|
|
для: Valeri
(03.12.2005 в 01:09)
| | К сожалению, все отступы нарушены и найти цикл невозможно, какой из этих циклов несёт отвественность за рассылку?
<?php
while ($row=@mysql_fetch_row($keywords))
while($row=@mysql_fetch_array($userlist)){
while($row=@mysql_fetch_array($getclicks)){
while($row=@mysql_fetch_array($getads)){
while($fields=@mysql_fetch_row($getfields)){
while($row=@mysql_fetch_array($getrow)){
while($row=@mysql_fetch_array($getrow)){
while ($user=@mysql_fetch_array($users))
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(03.12.2005 в 00:34)
| | я понял как вы предлогаете зделать, но в этом случае придется перекраивать почти весь скрипт, а это все таки напряжно.
хорошо поставим вопрос немного подругому.
есть цикл выборки из базы и по рассылке писем, функция в самом низу скрипта, как можно прикрутить к этому циклу что бы он к примеру выполнялся только 100 раз а потом завершал работу. но при этом после какого то время когда крон подаст команду на зауск скрипта он снова начал крутить данный цикл и так же после отсылки 100 писем завершался ?
надеюсь я ясно выразил свою мысль ? | |
|
|
|
|
|
|
|
для: Valeri
(02.12.2005 в 16:53)
| | Хм... тут лучше оперировать конструкцие LIMIT в SQL-запросе, позволяющей ограничивать число извлекаемых записей. Но более конкретно сказать сложно, так как неизвестна структура таблиц и код достаточно жёстко оптимизирован, так что его сложно уже читать. | |
|
|
|
|
|
|
|
для: cheops
(02.12.2005 в 14:11)
| | с этим понятно, но как это реализовать в скрипте, ведь там идет обыкновенный цикл, вытащил емайл-отправил, опять вытащил-отправил, а при вашем варианте значит надо как то вытаскивать сразу несколько емайлов и подставлять их. | |
|
|
|
|
|
|
|
для: Valeri
(02.12.2005 в 01:29)
| | Подробнее можно посмотреть в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=7487. Всё сводится к тому, что требуется добавить заголовок
<?php
$headers.="Bcc: sidor@mysite.ru\r\n";
$headers.="Bcc: sidor1@mysite.ru\r\n";
$headers.="Bcc: sidor2@mysite.ru\r\n";
?>
|
столько раз, сколько "слепых" копий вы хотите отправить. | |
|
|
|
|
|
|
|
для: cheops
(02.12.2005 в 00:26)
| | может подскажите как это применить в скрипте ?
а то что то я плохо представляю как можно проделать этот финт. | |
|
|
|
|