За последние 24 часа нас посетили 22637 программистов и 1039 роботов. Сейчас ищут 693 программиста ...

Сервер не отрабатывает повторные запросы при долгом выполнении скрипта.

Тема в разделе "Прочие вопросы по PHP", создана пользователем regabriel, 19 фев 2020.

  1. regabriel

    regabriel Новичок

    С нами с:
    19 фев 2020
    Сообщения:
    2
    Симпатии:
    1
    Адрес:
    Рязань
    Здравствуйте. Уже несколько дней пытаюсь понять в чем проблема, пока дошел до этой стадии :)
    Прошу совета для более быстрого поиска решения.
    • Установил обычный LAMP, в настройках ничего особо не менял, ни в апаче, ни в PHP7.2(разве что поставил вывод ошибок от php).
    • От одного устройства на сервер передается GET запрос и собственно обрабатывается PHP скриптом.
    • Этот скрипт отрабатывает около 2х секунд(по факту там подгружается библиотека с классами и объектами(примерно 5000-10000 строк кода, несколько сотен объектов, и около 40 классов), после чего идет посылка на другое устройство около 40-200 простых get запросов).
    • Во время работы этого скрипта, сервер не принимает повторные запросы от устройства, а просто их игнорирует!!! Хотя по идее должен либо ставить в очередь, либо выполнять параллельно.
    • Сессии в скрипте не используются.
    • Скорость связи с устройством 10Мб
    Как найти причину?
    Есть ли какие специальные настройки PHP которые способны так блокировать?
    Или это проблемы с Apach2 и нужно ковырять логи апача? Если будут советы переходить на nginx, то пожалуйста аргументируйте( увы большинство с чем работают то и советуют без понимания почему((( )

    Скорость работы скрипта скорее всего низкая из-за небольшой скорости приема устройством get запросов (выполняю командой file_get_contents(), но ответ мне не нужен... Возможно стоит использовать что-то другое?)
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.236
    Адрес:
    там-сям
    Я бы сначала выяснил детали в экспериментах: действительно ли сервер не принимает второй запрос или он просто делает это медленно. А что если запросы будут от разных браузеров и разных пользовательских аккаунтов?
    "Сессия не используется", но может используются какие-то файлы и они блокируются. Сделай пустышку с вызовом sleep() - она будет блокировать новые запросы?

    https://php.ru/forum/threads/server...-zaprosy-pri-dolgom-vypolnenii-skripta.84005/
    --- Добавлено ---
    Если он отвергает запросы, в логах должны быть записи с причиной.
     
    regabriel нравится это.
  3. regabriel

    regabriel Новичок

    С нами с:
    19 фев 2020
    Сообщения:
    2
    Симпатии:
    1
    Адрес:
    Рязань
    В общем разобрался.
    В логах apach проблем не было, но обнаружил, что не отправляет само устройство. Для него оказалось это слишком сложные для выполнения команды и оно не надолго подвисало.
    Спасибо за совет.
     
    artoodetoo нравится это.
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.072
    Симпатии:
    1.236
    Адрес:
    там-сям
    Для спасибо есть кнопка с пальцем вверх ;)