Запускайте вызов каждые несколько секунд с помощью php

#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;}