Задержка сна PHP

В PHP я хочу поставить несколько секундных задержек на каждой итерации цикла.

for ($i=0; $i <= 10; $i++) { $file_exists=file_exists($location.$filename); if($file_exists) { break; } //sleep for 3 seconds } 

Как я могу это сделать?

Solutions Collecting From Web of "Задержка сна PHP"

Используйте функцию PHP sleep() . http://php.net/manual/en/function.sleep.php Это останавливает выполнение следующего цикла для заданного количества секунд. Так что-то вроде этого

 for ($i=0; $i <= 10; $i++) { $file_exists=file_exists($location.$filename); if($file_exists) { break; } sleep(3); // this should halt for 3 seconds for every loop } 

Я вижу, что вы делаете … задержка сценария, чтобы постоянно проверять файл в файловой системе (тот, который загружается или написан другим сценарием, который я предполагаю). Это НЕОБХОДИМЫЙ способ сделать это.

  1. Ваш скрипт будет работать медленно. Удушение сервера, если несколько пользователей используют этот скрипт.
  2. Ваш сервер может отключиться для некоторых пользователей.
  3. Доступ к жесткому диску – дорогостоящий ресурс.
  4. Есть лучшие способы сделать это.

Вы можете использовать Ajax. И используйте таймаут, чтобы вызывать свой PHP-скрипт каждые несколько секунд. Это позволит избежать медленной загрузки скрипта. А также вы можете продолжать делать это постоянно (текущий цикл будет работать только 33 секунды, а затем остановится).

Вы можете использовать базу данных. В некоторых случаях доступ к базе данных происходит быстрее, чем доступ к жесткому диску. Особенно с видами и кешированием. Сценарий, создающий файл / загрузку файла, может установить флаг в таблице (например, file_exists), а затем вы можете иметь скрипт, который проверяет это поле в вашей базе данных.

Вы можете использовать sleep(3) который спит в течение 3 секунд.

Метод коррекции сна в php находится в секундах .

Рассматривали ли вы использование скрипта PHP Daemon с помощью supervisorD . Я использую его в нескольких задачах, которые должны выполняться все время.

Уловка гарантирует, что каждый раз, когда вы запускаете свой скрипт, вы проверяете ресурсы памяти. Если он слишком высок, остановите процесс, а затем снова перезапустите его.

Я успешно использовал этот процесс, чтобы всегда проверять записи базы данных для обрабатываемых задач.

Это может быть излишним, но стоит подумать.

Заяц – это два способа скрыть скрипт php в течение некоторого периода времени. Когда у вас есть код и вы хотите приостановить работу скрипта в течение некоторого времени, используйте эти функции. В этих примерах первая часть кода будет выполнена при запуске скрипта, а вторая часть кода будет выполнена, но с временной задержкой.

  1. Использование функции sleep ().

Пример:

 echo "Message 1"; // The first part of code. $timeInSeconds = 3; sleep($timeInSeconds); // The second part of code. echo "Message 2"; 

Таким образом, можно спать php-скрипт в течение 3 секунд. С помощью этой функции вы можете спящий сценарий для целого числа (целое) секунд.

  1. Использование функции usleep ().

Пример:

 echo "Message 1"; // The first part of code. $timeInSeconds = 2.487; $sleepTime = $timeInSeconds * 1000000; usleep($sleepTime); // The second part of code. echo "Message 2"; 

Вы можете использовать эту функцию, если хотите сбросить php для меньших значений времени, чем во втором (float). В этом примере я поставил скрипт на 2.487 секунд.