Консультация № 100070
29.08.2007, 07:52
0.00 руб.
0 5 5
Здравствуйте, уважаемые Эксперты!
У меня возникла такая задача:
1. Есть ли возможность заставить скрипт запуститься на сервере в определенное время без чьего-либо участия? Например, в 0:00 и в 3:00 нужно сделать рассылки сообщений зарегистрированным пользователям функцией mail(). Можно это сделать, если все переменные заданы?
2. Как установить задержку в скрипте? Например, нужно разослать N писем и, чтобы не перегружать слабый сервер, слать, допустим, 1 письмо в секунду.
Заранее спасибо...

Обсуждение

Неизвестный
29.08.2007, 08:11
общий
это ответ
Здравствуйте, Семенов Алексей Геннадьевич!
1. Для этого существует планировщик событий Cron! Спрашивайте у вашего хостера!
2. можно использовать:
void sleep (int seconds)
Функция sleep задерживает выполнение программы на данное количество секунд seconds.

Неизвестный
29.08.2007, 08:12
общий
это ответ
Здравствуйте, Семенов Алексей Геннадьевич!
1. Если вы под *NIX можите воспользоваться кроном, под WINDOWS стандартным планировщиком, но в любом случае вам необходима будет сторонняя программа, сам по себе скрипт не запустится.

2. Воспользуйтесь функцией sleep(); см. приложение

Приложение:
<?php// current timeecho date(‘h:i:s‘) . "\n";// sleep for 10 secondssleep(10);// wake up !echo date(‘h:i:s‘) . "\n";?>
Неизвестный
29.08.2007, 08:16
общий
это ответ
Здравствуйте, Семенов Алексей Геннадьевич!

1) Вы можете воспользоваться Cron, если ваш хостер предоставялет такую услугу.

http://www.caravan.ru/reference/faq/hosting/cron/
http://www.diradmin.ru/helper_user/misc.html

2) Для вставки задержки используйте функцию sleep()

http://ru2.php.net/sleep

Но имейте ввиду что на большинстве хостингов стоит ограничение на время выполнения скрипта, как правило это 30 сек. Т.е. если вы буду отправлять письма раз в секунду, то сможете отправить только 30 писем.
Неизвестный
29.08.2007, 09:53
общий
это ответ
Здравствуйте, Семенов Алексей Геннадьевич!
Ну собственно для этого и существует cron. Только есть несколько "но":
1. На бесплатных хостингах его не предоставляют
2. На платных хостингах предоставляется не на всех тарифных планах
3. Не на всех платных хостингах его предоставляют
Неизвестный
29.08.2007, 11:58
общий
это ответ
Здравствуйте, Семенов Алексей Геннадьевич!

Маленькое дополнение по поводу отправки писем:

Можно написать скрипт (почтовый "демон"), который будет доставать из специального файла список отправляемых писем (и их содержимое) и отправлять некоторое количество писем. После чего для отправки письма просто добавляете его в этот файл. Почтового "демона" нужно запускать из cron`а с некоторой периодичностью, к примеру, каждые 30 минут. В результате "демон" каждые пол часа будет отправлять небольшую порцию писем, пока не отправит их все.
Не забывайте удалять отправленные письма из списка, а то получится спам-монстр :-)
Форма ответа