@IgorNoskov

Сдохнет ли скрипт при описанной в теле вопроса логике?

Привет, друзья!

Есть скрипт, который выполняет запросы к серверам по очереди. Приведу примерный код:

$servers_list = get_servers_list( $id );

      foreach ( $servers_list  as $server ) {
        $class_name = 'App\\connectors\\' . $server['class_name'];

        if ( ! class_exists( $class_name ) ) {
          continue;
        }

        $process = new $class_name();

        if ( ! method_exists( $process, 'start' ) || ! $result = $process->start() ) {
          continue;
        }

        $result = json_decode( $result, true );

        if ( $result['status'] === 'waiting_confirmation' ) {
         // something to do
        } elseif ( $result['status'] === 'waiting_limit' ) {
          sleep( 60 );
         $process->start();
        }

      }


То есть, если мне очередной сервер отдаёт статус 'waiting_limit', я усыпляю скрипт на 60 секунд, а потом пробую снова, если снова статус 'waiting_limit', усыпляю и т.д. Есть шанс что такой скрипт сдохнет. Если да, что предпринять. Подскажите, пожалуйста.
  • Вопрос задан
  • 69 просмотров
Решения вопроса 2
402d
@402d
начинал с бейсика на УКНЦ в 1988
100%
Ответ написан
Комментировать
@BorisKorobkov Куратор тега PHP
Web developer
Если запускать скрипт из браузера, то браузер закроет соединение по таймауту, но скрипт продолжит работать до первой попытки echo.
Если запускать по крону, то будет работать, пока сам не закончит работать или пока не умрет из-за утечек памяти или нехватки других ресурсов

если снова статус 'waiting_limit', усыпляю и т.д.

В приведенном коде нет этого "и т.д."
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы