Это расширение выполняет фоновое задание на уровне http, поэтому вы должны управлять максимальным временем выполнения скрипта, я не думаю, что это расширение позаботится об этом. В случае выполнения командной строки максимальное время выполнения не применяется.
http://php.net/manual/en/info.configuration.php#ini.max-execution-time
Обычно в течение длительного процесса, а не отключить tiemout, я увеличиваем его в цикле, что-то вроде этого:
while ($i <= 10) {
my_complex_update_query();
echo "Timeout is : " . ini_get('max_execution_time') . " sec.<br>";
set_time_limit(ini_get('max_execution_time') + 1);
echo "NEW Timeout is : " . ini_get('max_execution_time') . " sec.<br>";
$i++;
}
Это приращение лимит времени добавления 1 сек в каждом цикле, очевидно, вы должны адаптировать его к своей потребности, например, добавить 1 сек каждые 10 циклов. Таким образом, если скрипт застрял по какой-то причине, он все равно будет тайм-аут и не будет висеть в памяти.
Учитывайте, что внешний вызов (например, запрос базы данных, exec системного вызова ...) не учитывается во время выполнения скрипта. Итак, если ваш скрипт исполняется в 5 секунд, вы выполняете запрос, выполняющий 2 минуты для выполнения, когда скрипт переходит к следующей инструкции, время выполнения составляет 5 секунд, а не 2 мин + 5 секунд.
Я раньше не использовал _runactions_, но для того, чтобы помочь в разговоре, можем ли мы предположить, что вы используете ERunActions :: runBackground(), который является 4-м используемым случаем в вставленной ссылке? Кроме того, 2500 записей обновили первые 2500 из 6000? – Jerome
Да его первые 2500 записей –
Это, вероятно, связано с тайм-аутом вашего PHP-скрипта. http://php.net/manual/en/function.set-time-limit.php – topher