Периодически выводить в браузер при длительной работе - PullRequest
2 голосов
/ 25 ноября 2011

Я использую LOAD DATA INFILE для импорта 11M записей, а затем сценарий продолжает выполнение других операций.Импорт занимает 10 минут, после чего браузер отказался (через 3 минуты), и я не вижу хода последующих операций.Есть ли способ выводить что-то в браузер периодически, пока выполняется этот трудоемкий запрос.Phpmyadmin, кажется, делает что-то вроде этого, и браузер не останавливается.

1 Ответ

0 голосов
/ 25 ноября 2011

Проверьте flush () (http://php.net/manual/en/function.flush.php) или ob_flush () (http://www.php.net/manual/en/function.ob-flush.php).

) Обычно вы генерируете свой вывод (в данном случае текущий статус) обычно, а затем вынуждаете сервер выводить то, чтов данный момент в буфере.

Если ваша операция занимает 10 минут, вам, вероятно, нужно будет использовать set_time_limit ($ секунд) (http://php.net/manual/en/function.set-time-limit.php),, будьте осторожны, вы не просто установите его в какое-то большое значение вЕсли страница зависает.

Если вы хотите выводить состояние каждые 10% (1 минута), вы можете сбросить тайм-аут на 2 минуты после сброса каждого обновления. Таким образом, ваш скрипт отключится, если он выйдет за пределы.ожидаемое время работы.

...