Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Рассылка с ограничением на скрипт 30 секунд
 
 автор: XPraptor   (15.05.2006 в 12:28)   письмо автору
 
 

Вот борюсь уже не первую неделю над прирнципом рассылки с ограничением на время выполнения скрипта в 30 секунд.
Хостер не дает времени больше, а подписчиков у меня около 40-а тысяч. За сессию в 30 секунд успевает уйти около двухсот писем, а дальше, лимит выходит скрипту и сервак закрывает соединение.
Кто-нить посоветуйте как в принципе организовать надежную циклическую рассылку, чтобы в случае ошибки не остановилось все.

   
 
 автор: Loki   (15.05.2006 в 13:52)   письмо автору
 
   для: XPraptor   (15.05.2006 в 12:28)
 

Ну я делал скрипт архивации так: в цикле отслеживается время выполнения, по достижении определенного интервала в БД записываем текущее состояние и рефрешим страницу. Сбоев ни разу небыло.

   
 
 автор: XPraptor   (15.05.2006 в 19:02)   письмо автору
 
   для: Loki   (15.05.2006 в 13:52)
 

Сенкс Loki. Можно попробывать такой вариант.
А как рефрешил? Через Location?

   
 
 автор: Loki   (15.05.2006 в 23:11)   письмо автору
 
   для: XPraptor   (15.05.2006 в 19:02)
 

рефрешил через мета теги

   
 
 автор: Саня   (15.05.2006 в 19:22)   письмо автору
 
   для: XPraptor   (15.05.2006 в 12:28)
 

А функция set_time_limit() не работает?
С помощью .htaccess попробуйте:
php_value max_execution_time 1000

   
 
 автор: cheops   (15.05.2006 в 23:32)   письмо автору
 
   для: Саня   (15.05.2006 в 19:22)
 

На большинстве хостингов её отключают.

   
 
 автор: Саня   (15.05.2006 в 23:47)   письмо автору
 
   для: cheops   (15.05.2006 в 23:32)
 

А ini_set() тоже отключают?
Последний шанс - директива php_value в .htaccess. Неужели и её могут отключить?

   
 
 автор: skor   (16.05.2006 в 00:10)   письмо автору
 
   для: Саня   (15.05.2006 в 23:47)
 

А если такой вариант :
брать не сразы все майлы а частями допустим по 200 и рассылать ....
конечно не так удобно как все сразу, но помоему самый простой выход..
правда и посидеть те придется.... хотя если все хорошо организовать то можно добится хороших результатов.

   
 
 автор: XPraptor   (16.05.2006 в 18:00)   письмо автору
 
   для: skor   (16.05.2006 в 00:10)
 

Ну, Loki, реализовал по твоему совету алгоритм - зеер гут! Рефреш правда наладил через Header(). Все работает, как не странно :-(
Я даже умудрился контроль наладить, отдельным потоком в БД можно флаг остановки сунуть и перед следующей партией 50 e-mail скрипт проверит флаг и тормознется в случае его обнаружения.
В общем сенкс тебе еще раз за идею.
А на счет того, что ты архивацию так делал - это зря. Такой алгоритм нужен как раз для рассылок и грабберов, ну или новости там собирать, где лимит самого соединения и времени выполнения скрипта важен. А архивация в MySQL встроена в синтаксис, она не зависит от ограничений и пока не завершится будет паковать. Если надо я тебе опишу синтаксис и принципы архивации данных из таблиц, или самих таблиц как объектов.

To: skor
А как по твоему еще делать если не частями? Проблемма была именно в том, как без перебоя наладить запуск этих частей. Ты вопрос прочитай - 40 000 подисчиков, 200 за 30 секунд вся рассылка автоматом занимает два-два с половиной часа.

To: остальные идеи
В вопросе же написано: ограничение хостера на выполнение скрипта 30 секунд. никакие директивы это обойти не смогут. Ни set_time_limit() ни .htaccess ни смена ини установок.
Все хостеры ограничивают скрипты 30-45 секунд, иначе слишком веселые программеры могут сервак подвесить своим весельем.

   
 
 автор: Саня   (16.05.2006 в 20:43)   письмо автору
 
   для: XPraptor   (16.05.2006 в 18:00)
 

...40 000 подисчиков, 200 за 30 секунд вся рассылка автоматом занимает два-два с половиной часа.
А какая, собственно, разнца? По частям два часа отправлять, или за один раз, но тоже за два часа. Общее количество подписчиков от метода выполнения скрипта не изменится!

   
 
 автор: XPraptor   (16.05.2006 в 22:49)   письмо автору
 
   для: Саня   (16.05.2006 в 20:43)
 

Ты прикалываешся что-ли? Если ты не понимаешь что такое ограничение на выполнение скрипта 30 секунд, то почитай у своего хостера в мануале.

   
 
 автор: Саня   (16.05.2006 в 23:10)   письмо автору
 
   для: XPraptor   (16.05.2006 в 22:49)
 

Что такое ограничение на выполнение скрипта я знаю. Ты просто не понял смысл моих слов...

   
 
 автор: Loki   (17.05.2006 в 00:27)   письмо автору
 
   для: XPraptor   (16.05.2006 в 18:00)
 

>А на счет того, что ты архивацию так делал - это зря.
Вероятно. Делал я давно, и с тех пор к переделке этого скрипта не возвращался. Просто меня удивляет, что от такого очевидного решения все шарахаются, при том, что за год у меня небыло ни единого сбоя.

   
 
 автор: Jura   (17.05.2006 в 17:34)   письмо автору
 
   для: Loki   (17.05.2006 в 00:27)
 

Подтверждаю! Скрипт Loki отличный. В некоторых случаях только он меня спасает.
Еще раз выражаю большущую благодарность. :)

   
 
 автор: Dominic   (17.05.2006 в 18:31)   письмо автору
 
   для: XPraptor   (15.05.2006 в 12:28)
 

Как вариант запуск скрипта через cron, если хостер дает такую возможность. Тогда у скрипта отсутствует ограничение по времени выполнения.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования