PHP: невозможно заставить работать ignore_user_abort (TRUE) - PullRequest
1 голос
/ 14 июля 2010

У меня есть скрипт с ignore_user_abort (TRUE); наверху, и я называю это так

$socket = curl_init("http://...");
curl_setopt($socket, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($socket, CURLOPT_TIMEOUT_MS, 1000);
$result = curl_exec ($socket);
curl_close($socket);

Этот скрипт выполняет скучную работу, которую я хочу запустить в фоновом режиме, и, судя по результату, скрипт начинает выполнять эту работу, но вскоре после этого он останавливается. Я перепробовал все, что знаю, и сейчас я действительно застрял. Может быть, есть какая-то конфигурация сервера, которая может блокировать ignore_user_abort ()? Пожалуйста, дайте мне знать, если у вас есть идеи по этому поводу.

PS. Для set_time_limit () задано высокое значение, и cpanel фиксирует все ошибки в журнале ошибок, поэтому он не умирает от фатальной ошибки.

Ответы [ 2 ]

0 голосов
/ 13 июля 2014

1) PHP не обнаруживает разрыв соединения каждый раз.Может быть, это ошибка.2) Если вы работаете с посредником / общим хостингом, вы не сможете изменить значение ignore_user_abort, set_time_limit и т. Д.

0 голосов
/ 14 июля 2010
curl_setopt($socket, CURLOPT_TIMEOUT_MS, 1000);

здесь вы определяете максимальное количество миллисекунд, чтобы функции cURL могли выполняться как 1000 ... так что вы позволяете своей функции curl работать только в течение одной секунды .... возможно, это так

http://php.net/manual/en/function.curl-setopt.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...