Ответ 1
использование:
sleep(NUMBER_OF_SECONDS);
У меня есть .PHP скрипт, который я использую для создания списка моих продуктов. Я нахожусь на общем хостинге, поэтому я не могу делать много запросов, иначе я получаю пустую страницу.
Вот как я использую свой script сейчас:
script.php?start=0&end=500&indexOfFile=0 ->> make a product0.txt file with first 500 products
script.php?start=501&end=1000&indexOfFile=1 ->> product1.txt file with another 500 products
script.php?start=1001&end=1500&indexOfFile=2 ->> product2.txt file with last 500 products
Как я могу изменить script, поэтому он будет делать все эти файлы автоматически, так что мне не нужно менять каждый раз, когда ссылка вручную?
Я бы хотел нажать кнопку, которая будет делать это:
создайте файл product0.txt
с первыми 500 продуктами
подождите 5 секунд
создайте файл product1.txt
с еще 500 продуктами
подождите 5 секунд
создайте файл product2.txt
с последними 500 продуктами
использование:
sleep(NUMBER_OF_SECONDS);
перед началом действий используйте
sleep(5);
или
usleep(NUMBER_OF_MICRO_SECONDS);
Я нахожусь на общем хостинге, поэтому я не могу делать много запросов, иначе я получаю пустую страницу.
Это звучит очень странно. У меня есть самый дешевый PHP-хостинг, который я мог бы найти для моего последнего проекта - и он не ведет себя так. Я бы не заплатил за услугу. В самом деле, я в тупике даже знаю, как я могу настроить сервер для репликации этого поведения.
Независимо от того, почему он ведет себя таким образом, добавление сна в середине script не может решить проблему.
Поскольку, по-видимому, вы контролируете свой каталог продуктов, новые продукты должны быть относительно нечастыми (или вы пытаетесь получить отчеты о запасах?). Если вы управляете при изменении данных, зачем запускать сценарии автоматически? Или вы имеете в виду, что у вас уже есть эти URL-адреса, и вы получаете ожидаемые файлы, когда вы запускаете их по одному?
В январе2018 года у меня работало единственное решение:
<?php
if (ob_get_level() == 0) ob_start();
for ($i = 0; $i<10; $i++){
echo "<br> Line to show.";
echo str_pad('',4096)."\n";
ob_flush();
flush();
sleep(2);
}
echo "Done.";
ob_end_flush();
?>
Примеры: использование режима сна для добавления задержки или увеличения времени выполнения
Давайте напечатаем время с задержкой в 15 секунд.
<?php
echo date('H:i:s');
sleep(15);
flush();
echo "<br>";
echo date('H:i:s');
?>
Выход
11:36:19
11:36:34
<?php
foreach($i = 0; i < 500; $i++){
your_code;
delay(3); // 3 seconds
}
?>