Последовательность длительных сценариев PHP

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

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

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

Спасибо

Вы говорите здесь о PHP-скриптах? Тогда почему file_get_contents, а не include / require…?

misorude 22.10.2018 10:27

Это скрипты php, которые следует вызывать через полный URL-адрес: он находится в codeigniter, поэтому он должен учитывать процесс маршрутизации.

MarvinLeRouge 22.10.2018 10:31

используйте` fopen (); fclose (); `или stream_set_timeout();

Leo Tahk 22.10.2018 10:35

Вы можете попробовать передать контекст потока в file_get_contents и указать через него тайм-аут. (Не уверен, что -1 для «без тайм-аута» - допустимый вариант.) Но это все равно может привести к проблемам с таймаутами на уровне веб-сервера или чем-то в этом роде. Сценарий, работающий так долго, не должен вызываться через HTTP в первую очередь IMHO.

misorude 22.10.2018 10:36
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
59
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

php script1 && php script2

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

php script1; php script2

С exec и && это именно то, что мне нужно. Спасибо.

MarvinLeRouge 23.10.2018 09:30

Другие вопросы по теме