#php #combinations #wait #sleep
#php #комбинации #подождите #сон
Вопрос:
У меня есть около 900 комбинаций, которые необходимо проверить через внешнюю сторону для проверки.Мне нужно выполнить указанные ниже шаги :
Шаг 1: Вставьте все 900 комбинаций в таблицу [ГОТОВО]
Теперь мне нужно сделать это
Шаг 2: Запускайте вызов каждые несколько секунд (добавьте функцию ожидания PHP)
Шаг 3: сохраните результат в базе данных
чтобы в случае сбоя мы могли запустить его снова с того места, где произошел сбой
Пробовал php-код :
$t0 = microtime(true);
$i = 0;
do{
$dt = round(microtime(true)-$t0);
if($dt!= $i){
$i = $dt;
if(($i % 2) == 0) //every 2 seconds
echo $i.PHP_EOL;
}
}
while($dt<10); //max execution time
Невозможно использовать setInterval в javascript.
Ответ №1:
Я обычно использую sleep(2)
. Если вы хотите более детализированный, вы можете использовать time_nanosleep
Пожалуйста, также найдите пример, как создавать блоки в php.
$arr = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15];
$chunked = array_chunk($arr, 5);
$res = [];
$flag = 0;
foreach($chunked as $arr){
sleep(2);
echo 'sleep';
foreach ($arr as $val) {
var_dump($val);
}
}
Комментарии:
1. Если у меня есть 15 записей, я хочу выполнить их в наборе из 3 [5 записей в каждом наборе], я хочу, чтобы первый набор выполнялся без режима ожидания, а затем 2 набора должны использовать режим сна, тогда?
2. Добавьте переменную внутри цикла для увеличения, и если переменная > 0 — спящий режим.
3. Но как создавать кучу из 5 записей каждый раз?
4. Я бы разделил массив с помощью array_chunk, а затем создал бы foreach внутри foreach 🙂
5. Не могли бы вы, пожалуйста, указать мне, что я использую ===> foreach($ db_array как $ arr){ if($ flag> 4) { sleep(2); } if($flag >= 15 ) break; $flag ; $ res [] = $ arr;}