Скрипт рассылки с пакетным методом передачи

Тема в разделе "PHP", создана пользователем lopotorius, 12 июн 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. lopotorius

    lopotorius Создатель

    Регистр.:
    8 апр 2008
    Сообщения:
    31
    Симпатии:
    2
    В общем есть система SLAED CMS и там начиная с версии 3.0 рассылка работает пакетным методом(То есть письма передаются предположим по 50 штук за одну отправку и каждая отправки происходит с интервалом в 5 минут).То есть ты вечером зашел в админку запустил отправку выключил компьютер проснулся включил комп утром глянул рассылка уже отправлена всем.Пишет время рассылки ну и так далее..Я не могу разобраться в методе работы этого алгоритма..
    Вот приблизительный метод работы скрипта:
    1;Запускаем рассылку
    2;Идет построение списка имейлов ну и прочая бурда
    3;Отправляется первая очередь писем и производятся изменения данных в БД(перезапись времени например)
    4;Затем идет каким то образом отсчет времени и цикл повторяется снова.
    СРазу говорю никаких планировщиков типа Cron не требуется!!Как я понимаю проверка по времени прикручивается к главному файлу index.php сайта то есть когда юзер загружает сайт проходит проверка по времени и при хорошей посещаемости будет все нормально.Но вот вопрос-не будет ли причинять лишнее время загрузки страницы моральный ущерб юзеру?Вообще куча вопросов и хотелось бы послушать совета профессионалов.Как должен работать модуль рассылки?
     
  2. D@nil

    D@nil

    Регистр.:
    1 окт 2006
    Сообщения:
    338
    Симпатии:
    122
    Работать должен через cron :)
     
  3. lopotorius

    lopotorius Создатель

    Регистр.:
    8 апр 2008
    Сообщения:
    31
    Симпатии:
    2
    Я написал же что без Crona все работает!!!!Читайте сообщения до конца!И прочитайте вопрос снова!
     
  4. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Если работает без крона - значит идет постоянный перезапуск рассыльщика в фоне :)

    Проверили-отослали-слип на 5 минут - перезапуск себя через exec :)
     
  5. lopotorius

    lopotorius Создатель

    Регистр.:
    8 апр 2008
    Сообщения:
    31
    Симпатии:
    2
    в фоне?поподробнее?Я думаю что работает так:мы запускаем рассылку проходит первый поток затем к индексу мы привязываем условие что если больше пяти минут прошло то запустим еще одну рассылку то есть при постоянном потоке пользователей рассылка будет идти но пользователю придется ждать некоторое время пока помимо страницы и рассылка проработает...Блин я уже в замешательстве не знаю что делать
     
  6. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Ну вот так, например :)
    PHP:
    <?php
        ini_set
    ('max_execution_time'0);
        
        
    $oMailer = new mailer();
        
    $oMailer->sendMessages($iLimit 50);
        
    sleep(600);

        
    $aMatches = array();
        
    exec('/usr/bin/php5 -f '.$_SERVER['SCRIPT_FILENAME'].'>> /dev/null &'$aMatches);
        die();
     
    lopotorius нравится это.
  7. lopotorius

    lopotorius Создатель

    Регистр.:
    8 апр 2008
    Сообщения:
    31
    Симпатии:
    2
    спасибо более менее подтвердил мои слова:)
     
  8. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Спасибо у нас говорят кнопками - это не намек, а трезвое пожелание, ибо бу расценивать как флуд.

    А во вторых.. во вторых - что мешало "свои догадки" реализовать? :D :D :D
     
  9. lopotorius

    lopotorius Создатель

    Регистр.:
    8 апр 2008
    Сообщения:
    31
    Симпатии:
    2
    за спасибо простите.А реализовать догадки-я очень не люблю накалываться что присходит у меня очень часто.Ты пишешь, пишешь скрипт и в итоге оказывается что метод ты выбрал неправильный.....И все твои труды под хвост коту
     
  10. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    Мде... дожили, 7 строк кода - "пишешь пишешь... пишешь-пишешь... пишешь-пишешь..." :D
    Закрыто нафиг :-]
     
Статус темы:
Закрыта.