при длинном опросе, почему мои другие запросы занимают так много времени? - PullRequest
1 голос
/ 17 апреля 2010

Клиент делает 2 одновременных запроса. (1, который занимает 60 секунд - длинный опрос), а другой, который НЕ является длинным опросом - должен вернуться сразу же. Это возвращается сразу, когда я не делаю длинный опрос. Но как только я начинаю долго опрашивать другой поток, выполнение другого требует вечности.

Firebug показывает, что запрос ждет 10-50 секунд. На сервере я профилировал ВСЕ запросы с момента запуска php-скрипта до момента, когда он возвращается к клиенту, и он показывает, что каждый из них занял 300 мс или меньше.

Эта проблема началась примерно в то же время, когда я начал делать длинный опрос (с другими запросами XHR). Я использую jquery для обоих запросов.

Сервер показывает, что он находится под очень небольшой нагрузкой. Процессор и память менее 2%. 8 процессов работают из пула 15. (кажется, что он не сильно отличается от этого числа 8, даже когда я запускаю больше запросов ajax). Я предполагаю, что каждый процесс может запускать несколько потоков AJAX одновременно.

Я позаботился о выходе из всех процессов, как только они закончат выполняться. Я не вижу, как закончился пул процессов, если в prstat -J есть еще 7 неиспользуемых процессов. Кроме того, проблема возникает несколько периодически. Firefox должен уметь обрабатывать 2 одновременных ajax-запроса. я не понимаю, в чем проблема.

1 Ответ

1 голос
/ 20 января 2011

У меня была такая же проблема с firefox и двумя запросами jsonp, один длинный опрос. Проблема в том, что jsonp - это в основном теги сценариев, которые извлекают javascript, а firefox загружает динамически вставленные сценарии синхронно.

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

Если ваш случай не jsonp, я не могу предложить какую-либо помощь.

...