|
|
|
| Вот борюсь уже не первую неделю над прирнципом рассылки с ограничением на время выполнения скрипта в 30 секунд.
Хостер не дает времени больше, а подписчиков у меня около 40-а тысяч. За сессию в 30 секунд успевает уйти около двухсот писем, а дальше, лимит выходит скрипту и сервак закрывает соединение.
Кто-нить посоветуйте как в принципе организовать надежную циклическую рассылку, чтобы в случае ошибки не остановилось все. | |
|
|
|
|
|
|
|
для: XPraptor
(15.05.2006 в 12:28)
| | Ну я делал скрипт архивации так: в цикле отслеживается время выполнения, по достижении определенного интервала в БД записываем текущее состояние и рефрешим страницу. Сбоев ни разу небыло. | |
|
|
|
|
|
|
|
для: Loki
(15.05.2006 в 13:52)
| | Сенкс Loki. Можно попробывать такой вариант.
А как рефрешил? Через Location? | |
|
|
|
|
|
|
|
для: XPraptor
(15.05.2006 в 19:02)
| | рефрешил через мета теги | |
|
|
|
|
|
|
|
для: XPraptor
(15.05.2006 в 12:28)
| | А функция set_time_limit() не работает?
С помощью .htaccess попробуйте:
php_value max_execution_time 1000
|
| |
|
|
|
|
|
|
|
для: Саня
(15.05.2006 в 19:22)
| | На большинстве хостингов её отключают. | |
|
|
|
|
|
|
|
для: cheops
(15.05.2006 в 23:32)
| | А ini_set() тоже отключают?
Последний шанс - директива php_value в .htaccess. Неужели и её могут отключить? | |
|
|
|
|
|
|
|
для: Саня
(15.05.2006 в 23:47)
| | А если такой вариант :
брать не сразы все майлы а частями допустим по 200 и рассылать ....
конечно не так удобно как все сразу, но помоему самый простой выход..
правда и посидеть те придется.... хотя если все хорошо организовать то можно добится хороших результатов. | |
|
|
|
|
|
|
|
для: 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 секунд, иначе слишком веселые программеры могут сервак подвесить своим весельем. | |
|
|
|
|
|
|
|
для: XPraptor
(16.05.2006 в 18:00)
| | ...40 000 подисчиков, 200 за 30 секунд вся рассылка автоматом занимает два-два с половиной часа.
А какая, собственно, разнца? По частям два часа отправлять, или за один раз, но тоже за два часа. Общее количество подписчиков от метода выполнения скрипта не изменится! | |
|
|
|
|
|
|
|
для: Саня
(16.05.2006 в 20:43)
| | Ты прикалываешся что-ли? Если ты не понимаешь что такое ограничение на выполнение скрипта 30 секунд, то почитай у своего хостера в мануале. | |
|
|
|
|
|
|
|
для: XPraptor
(16.05.2006 в 22:49)
| | Что такое ограничение на выполнение скрипта я знаю. Ты просто не понял смысл моих слов... | |
|
|
|
|
|
|
|
для: XPraptor
(16.05.2006 в 18:00)
| | >А на счет того, что ты архивацию так делал - это зря.
Вероятно. Делал я давно, и с тех пор к переделке этого скрипта не возвращался. Просто меня удивляет, что от такого очевидного решения все шарахаются, при том, что за год у меня небыло ни единого сбоя. | |
|
|
|
|
|
|
|
для: Loki
(17.05.2006 в 00:27)
| | Подтверждаю! Скрипт Loki отличный. В некоторых случаях только он меня спасает.
Еще раз выражаю большущую благодарность. :) | |
|
|
|
|
|
|
|
для: XPraptor
(15.05.2006 в 12:28)
| | Как вариант запуск скрипта через cron, если хостер дает такую возможность. Тогда у скрипта отсутствует ограничение по времени выполнения. | |
|
|
|