Почему когда работает curl, apache блокирует доступ к хосту?

Конкретно никто не дает нормальный ответ, кто говорит что в apache надо увеличить maxClients, кто-то child процессы, но не помогает. Для чего мне это нужно. К примеру у меня парсер с веб интерфейсом, запускается парсинг с помощь ajax соединения, после чего аяксом подгружает результат процесса парсинга. Но так-как curl работает, apache закрывает доступ к хосту для данного ip, до окончания работы curl
  • Вопрос задан
  • 3619 просмотров
Пригласить эксперта
Ответы на вопрос 4
fornit1917
@fornit1917
Как вариант: если у вас php-сессии хранятся в файлах и в запросах открывается сессия, то проблема может быть в этом.
Например один процесс апача (тот который использует curl) открывает сессию, затем начинается парсинг. Сессия открыта, файл с ней заблокирован. Вы шлете другой запрос к своему серверу, где тоже открывается сессия, но она не может открыться т.к. файл заблокирован другим процессом, поэтому этот процесс будет висеть, пока процесс-блокировщик не закончит парсить страницу и не закроет сессию.
Ответ написан
С чего вы взяли что apache закрывает доступ? Как проверяли?
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Есть простое решение - использовать очереди (rabbitmq/zeromq) и повесить выполнение грабера на cli (+ можно прописать в супервизоре правило, что бы тот поднимал обработчик очереди если тот вдруг упадет).
Ответ написан
Комментировать
Проверьте настройки браузера, некоторы не хотят открывать более N соединений одновременных к серверу. И у вас похоже N=1, у меня когда то таким опера страдала. Запускаешь запрос в PMA и пока он выполняется - в других вкладках с PMA работать невозможно. В другом браузере на том же компьютере можно открыть тот же PMA.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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