[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт работает 5 часов
Страницы: 1, 2
Владимир55
Скрипт должен отправлять пять писем в случайные моменты времени с большими промежутками:
for ($i = 1; $i <= 5; $i++)
{
sleep(mt_rand(2000, 4000)); // Задержка в секундах
mail();
}

То есть, он будет непрерывно работать несколько часов, но исполняться будет только sleep.

Как полагаете, это сильно нагружает хостинг (процессор) или нет?
Игорь_Vasinsky
....
....
....

Для таких заданий используют Cron

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Владимир55
Я знаю, но программирование Cron на случайный запуск слишком муторно, и даже сам хостер этого не рекомендует.
T1grOK
хм...создал файл, прописал в кроне, чтоб дергался этот файл каждые несколько минут...все.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Игорь_Vasinsky
Ты как думаешь запускать свой скрипт?

открыть его в браузере, закрыть (с расчётом что прописал ignore_user_abort()) ???
или ты его на своих посетителей набросишь?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Владимир55
Цитата (Игорь_Vasinsky @ 2.02.2015 - 09:30)
Ты как думаешь запускать свой скрипт?

Запускать по Cron а 10 утра.
Игорь_Vasinsky
ну вот и запускай с интервалом в 2 минуты. тока цикл убери - оставь тока поиск 5ти случайных мыл и отправку.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Владимир55
Цитата (Игорь_Vasinsky @ 2.02.2015 - 09:35)
запускай с интервалом в 2 минуты

Задача как раз и состоит в том, чтобы не было интервала. Нужен случайный промежуток от получаса до часа.

(все письма идут по одному адресу)
T1grOK
Кто мешает в скипте заложить логику случайности?

if($last_send < time() - mt_rand(2000, 4000){
mail();
}


_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
Владимир55
Не вполне понятно, каким должен быть этот скрипт?

Можете Вы написать код полностью?
Valick
Владимир55, спам нелёгкое дело smile.gif
Как бы решал подобную задачу я.
Сделал бы таблицу в БД где разместил письма и время отправки конкретного письма (это легко сделать рандомно с определёнными параметрами) + их еще можно корректировать вручную.
По крону каждые 10 минут запускал бы скрипт который сравнивал текущее время со временем отправки письма. Это грубое описание, но как-то так.


_____________
Стимулятор ~yoomoney - 41001303250491
Владимир55
Это вполне приемлемый алгоритм, спасибо!
Invis1ble
в этих ваших линуксах же есть методы получения рандомного числа в shell
можно попробовать рандомно запускать cli-скрипт https://unix.stackexchange.com/questions/14...-specific-range

а вообще за спам а-та-та

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Владимир55
Цитата (Invis1ble @ 2.02.2015 - 10:21)
а вообще за спам а-та-та

В действительности выполняется другая функция, но чтобы ее не громоздить, я в коде привел почту, ибо применительно к вопросу это тоже самое.
killer8080
Цитата (Владимир55 @ 2.02.2015 - 12:02)
Как полагаете, это сильно нагружает хостинг (процессор) или нет?

спячка не может нагружать процессор, спящему процессу не выделяются таймслоты CPU, а значит вычислительные ресурсы на него не расходуются, он просто будет висеть в памяти и всё (и то не факт, при длительной спячке ОС может его переселить в swap)
Цитата (Valick @ 2.02.2015 - 13:02)
По крону каждые 10 минут запускал бы скрипт

можно и демоном сделать
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.