Если все ваши тайм-ауты и время выполнения достаточно велики и ignore_user_abort
равно true
, то ваша проблема в том, что $i
не увеличивается.См. Ниже:
class myclass{
public function __construct(){
$i = 0;
while($i < $_POST['some_user_defined_var']){
//$_POST['some_user_defined_var'] = 100
$this->do_something();
++$i; // <-- increment your counter.
}
}
private function do_something(){
//this function takes about 1 hour to run
}
}
new myclass;
В целом, что-то вроде этого определенно будет лучше подходить в качестве задания CRON / запланированной задачи.Если вам нужно, чтобы это было активировано пользователем, я предлагаю использовать комбинацию CRON и хранилища базы данных, чтобы пользовательское действие могло создать запись в БД, а задание CRON могло просто искать запись и действовать по ней.
96-часовой HTTP-запрос абсолютно абсурден.