2016-09-06 4 views
0

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

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

+2

Попробуйте разделить задачу на более мелкие куски, например: если у вас есть 100 запросов для выполнения, измените сценарий на выполнение одного запроса, а затем добавьте в него заголовок самообновления, чтобы он мог продолжить следующий запрос в другом сеансе. –

+0

Разве не лучше использовать Ajax для чего-то подобного? –

+0

@ JanAndrèSchlösser Почему вы предлагаете использовать AJAX? Будет ли пользовательский интерфейс или это просто долгосрочная задача, которую вы планируете запускать один раз в день? Задача запланированного CLI - это лучший выбор; вы можете настроить запланированную задачу на своем веб-сервере? – MonkeyZeus

ответ

0

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

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

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