Добавьте остановку времени после каждого выполнения l oop - PullRequest
1 голос
/ 18 апреля 2020

Как видите, у меня есть скрипт, который отправляет электронные письма с помощью функции mail. Скрипт работает просто отлично, но я бы хотел добавить «остановку по времени» после каждого выполнения l oop. Например, допустим, я хотел бы добавить 2 se c stop после каждого выполнения, l oop будет работать следующим образом: execute (wait 2 se c) execute (wait 2 se c) execute ( wait 2 se c) ... Итак, в конечном итоге скрипт будет работать следующим образом: Отправить письмо (wait 2 se c) Отправить другое письмо (wait 2 se c) ...

Я попытался найти в inte rnet похожую проблему, но не смог найти ничего, что могло бы помочь.

Возможно ли что-то подобное сделать?

Любая помощь приветствуется!

Вот мой сценарий для всех, кто хотел бы его просмотреть.

<?php
$con=mysqli_connect("localhost", "root", "")or die("Can not connect to DB");
mysqli_select_db($con,"some_db")or die("Can not select DB");
$sql= "SET time_zone = '+00:00'; SELECT * FROM tbt WHERE DAY(date) = DAY(CURDATE()) AND MONTH(date) = MONTH(CURDATE());";
if (mysqli_multi_query($con, $sql)) {
    do {

        if ($result = mysqli_store_result($con)) {
            while ($row = mysqli_fetch_array($result)) {
                $to = $row["email"];
                $subject = 'Something';
                $message = 'Hello';
                $headers = 'From:noreply@something.net' . "\r\n";
                mail($to,$subject,$message,$headers);
               /* I suppose that stop would go here */
            }
            mysqli_free_result($result);
        }
    } while (mysqli_more_results($con) && mysqli_next_result($con));
}
?>

Ответы [ 2 ]

1 голос
/ 18 апреля 2020

Это работа для сна (2) ;

Но будьте осторожны. php скрипты обычно есть. max_execution_time установка минуты или двух, и время, которое вы спите, учитывается.

sendgrid.com - это служба электронной почты с бесплатным уровнем обслуживания. Они не ограничивают вашу исходящую электронную почту, а дают месячные и, возможно, суточные лимиты сообщений, если вы их не оплачиваете. Это может быть лучшим решением вашей проблемы, чем спит в php скриптах.

1 голос
/ 18 апреля 2020

Сон звучит как то, что вы ищете.

while(false === $whatever) {
   sleep(2); // halt execution for 2 seconds.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...