|
|
|
| Здравствуйте, хотим выполнить рассылку на 20к ящиков своих клиентов. Проблемы начались с функцией задержки sleep(); (но скорей всего не с ней)
Имеется блокнот с ящиками пользователей, на каждой строке ящик. Скрипт проходится по всем ящикам и отправляет письмо.
В цикле скрипта используется функция sleep(50); задержка 50 секунд, дабы не попадать в спам e-mail сервисов.
Эта задержка работает правильно 15 минут, после чего начинаются странности. Начинают повторятся почты, видимо цикл заново начинает идти и sleep работает странно, 2 письма отправляет сразу, а только на 3 делает задержку.
Что это может быть? | |
|
|
|
|
|
|
|
для: Ванек2010
(04.11.2012 в 11:27)
| | Кое-что проверил и удивился. Блокнот на каждой строке имеет цифру по возрастанию.
1
2
3
4
5
6 .. и так до 100.
<?php
$fd = fopen($dir.'test.txt','r');
if(!$fd) exit('Невозможно открыть файл');
while(!feof($fd))
{
$num = fgets($fd, 1024);
$result = $num;
$fds = fopen($dir.'result.txt', 'a');
if ($fds == true) {
fclose($fds);
}
$fds = fopen($dir.'result.txt', "a+b");
if (!$fds) die("Невозможно открыть на запись");
fwrite($fds, $result);
fclose($fds);
sleep(50); # ждем 50 секунд
}
|
В итоге получаем:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
0
19
1
20
2
21
3
22
4
23
5
24
6
25
7
26
8
27
9
28
10
29
11
30
12
31
13
32
14
33
15
34
16
35
17
36
18
0
37
19
1
38
20
2
39
21
3
40
22
4
41
23
5
42
24
6
Как такое объяснить? | |
|
|
|
|
|
|
|
для: Ванек2010
(04.11.2012 в 15:50)
| | Вы скрипт из браузера запускаете?
Похоже, что браузер, решив что сервер не доступен, посылает второй запрос. Потом третий...
Впишите в скрипте отправки вывод текста в браузер со сбросом буфера, чтоб он видел, что ему отвечают:
echo "Письмо №$result отправлено<br>"; flush();
|
| |
|
|
|