мне нужно, чтобы эта функция PHP работала в фоновом режиме из-за ошибки тайм-аута

Мне нужно запустить всю эту функцию в фоновом режиме, потому что для ее завершения требуется много времени, и поэтому он получает тайм-аут на сервере cloudflare. Я пробовал больше exec-кодов для запуска, но его нужно получить $id с этим тогда только он работает на work.php. Так что я сейчас пытаюсь справиться с этой целой функцией, тогда, возможно, ее работа.

function pancal($id) {
for($i = 1; $i < 4; $i++) {
_req('http://' . $_SERVER[HTTP_HOST] . '/work.php?cod=' . $id);
}
print 'Success';
}

1

Решение

Ты можешь использовать set_time_limit функция для установки ограничений по времени выполнения вашего скрипта.

Просто добавь set_time_limit(3600) //3600 seconds, сценарий не будет тайм-аут в течение одного часа

если параметр установлен в ноль, ограничение по времени не накладывается.

Вы можете прочитать здесь больше: http://php.net/manual/en/function.set-time-limit.php

0

Другие решения

  1. Создайте скрипт php для запуска на сервере с обращениями к базе данных.
  2. прочитайте базу данных для работы
  3. другой скрипт просто для вставки работы, которую нужно сделать в базу данных
  4. создать работу cron для поиска рассматриваемой работы в БД
  5. это создаст фоновую работу.
  6. в сценарии на сервере встроите что-то, что вставит 1 в случае успеха или 0 в случае неудачи в базу данных. в том числе некоторые сообщения об ошибках всегда приятно.

Надеюсь, что это немного поможет вам начать.

Да, и в рамках сценария использования (не рекомендуется с 0, но вы поняли)

set_time_limit(0); //this will run forever and wont stop unless you manually go into the server and kill it.
0