Длинные скрипты PHP в последовательности

У меня следующая проблема: в php-скрипте я должен запустить первый скрипт, затем второй. Второй не должен начинаться до завершения первого.

Проблема: два скрипта работают долго (может занять до нескольких часов). Итак, если я использую file_get_contents для каждого URL-адреса скрипта, я могу запустить первый (через set_time_limit 0), но file_get_contents истекает, поэтому у меня возникает ошибка, а второй никогда не запускается.

Примечание: эти сценарии выполняются на localhost на машине linux, администратором которой я являюсь. Я могу сделать все, что мне нужно, чтобы это сработало.

Спасибо


person MarvinLeRouge    schedule 22.10.2018    source источник
comment
Вы говорите о скриптах PHP здесь? Тогда почему file_get_contents, а не include/require…?   -  person misorude    schedule 22.10.2018
comment
Это php-скрипты, которые следует вызывать с помощью полного URL-адреса: он находится в codeigniter, поэтому он должен соблюдать процесс маршрутизации.   -  person MarvinLeRouge    schedule 22.10.2018
comment
использовать` fopen(); fclose();` или stream_set_timeout();   -  person Leo Tahk    schedule 22.10.2018
comment
Вы можете попробовать передать контекст потока в file_get_contents и указать через него время ожидания. (Не уверен, что -1 для «без тайм-аута» является допустимой опцией.) Но это все равно может привести к проблемам с тайм-аутами на уровне веб-сервера или чем-то еще. Сценарий, работающий так долго, скорее не должен вызываться через HTTP, ИМХО.   -  person misorude    schedule 22.10.2018


Ответы (1)


Выполните их через командную строку и свяжите их с &&, поэтому второй сработает только в том случае, если первый завершился правильно.

php script1 && php script2

Или цепочка с ;, если вы просто хотите, чтобы второй запускался после первого, независимо от статуса выхода.

php script1; php script2
person Andrea Golin    schedule 22.10.2018
comment
С exec и && это как раз то, что мне было нужно. Спасибо. - person MarvinLeRouge; 23.10.2018