Длительный процесс PHP в браузере

Ситуация: у меня есть php-скрипт, который выполняет множество запросов к Google Pagespeed API. Эти запросы занимают некоторое время. Я запрограммировал скрипт, который отлично работает, пока я нахожусь в своей локальной среде разработки (max_execution_time не установлено). Ну, я хочу запустить скрипт на рабочем сервере без редактируемого max_execution_time (30 с). Как я могу это заархивировать без - неужели так сложно реализовать такую ​​функцию?

Я буду рад, если вы дадите мне несколько идей, может быть, немного кода.


person Jan Andrè Schlösser    schedule 06.09.2016    source источник
comment
Попробуйте разделить задачу на более мелкие фрагменты, например: если у вас есть 100 запросов для выполнения, измените сценарий для выполнения одного запроса, а затем добавьте к нему заголовок самообновления, чтобы он мог продолжить следующий запрос в другом сеансе.   -  person Capital C    schedule 06.09.2016
comment
Не лучше ли использовать Ajax для чего-то подобного?   -  person Jan Andrè Schlösser    schedule 06.09.2016
comment
@JanAndrèSchlösser Почему вы предлагаете использовать AJAX? Будет ли пользовательский интерфейс или это просто долгоиграющая задача, которую вы планируете запускать раз в день? Запланированная задача CLI — ЛУЧШИЙ выбор; Вам разрешено настраивать запланированную задачу на вашем веб-сервере?   -  person MonkeyZeus    schedule 06.09.2016
comment
На самом деле существует пользовательский интерфейс, который должен показывать ход выполнения скрипта... Кто-нибудь знает, как реализовать такой запрос Ajax? Может быть, образец кода? ???? спасибо!   -  person Jan Andrè Schlösser    schedule 06.09.2016


Ответы (1)


В отсутствие какого-либо кода я предполагаю, что вы используете curl из file_get_contents, поэтому вы можете использовать функции curl_multi_*, которые позволяют отправить несколько http-запросов одновременно и дождаться окончания их выполнения.

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

Надеюсь это поможет.

person vincenth    schedule 06.09.2016