Я работаю с CakePHP в приложении, которое должно запускать трудоемкую задачу с помощью одного вызова AJAX, со вторичным периодическим AJAX-вызовом, проверяющим ход выполнения задачи.CakePHP Concurrent AJAX Запросы Блокировка
Проблема
Хотя трудоемкая задача (которая занимает> 30 секунд) работает через это AJAX запрос на CakePHP прогресс запрос на вторичном AJAX, похоже, не будет «блокировка».
Чтобы уточнить, запрос AJAX для вторичного хода не возвращает никакой ошибки, он просто не возвращает никакого ответа до тех пор, пока не закончится первоначальный запрос времени.
Как только этот оригинальный запрос AJAX завершается, вторичный запрос AJAX прогресса возвращается, как ожидалось.
Похоже, что выполнение запроса на выполнение ставится в очередь до тех пор, пока первый вызов AJAX не завершится, так как достигнутый прогресс равен 100%.
Что я Пробовал
Я попробовал несколько предложенных решений, в том числе:
- не Изменение обработчика сеанса 'пирога' в core.php - не исправить
- Установка Конфигурация уровня безопасности до «medium» в core.php - нет исправления
- Отключение проверки агента пользователя в core.php - нет исправления
- Тестирование mul несколько одновременных вызовов AJAX на простой PHP-скрипт на том же сервере - работает как ожидалось
Любые идеи?
Так кажется, что проблема вызвана CakePHP - кто-нибудь испытал это в своем собственном приложении CakePHP?
Спасибо!
Привет, лавандер, я использую Prototype, но я не думаю, что проблема с JS-инфраструктурой. Мне удалось достичь одновременных вызовов AJAX через Prototype на сервере, отличном от CakePHP, поэтому похоже, что «блокировка» происходит где-то внутри CakePHP. – Ben
Привет, я нашел проблему. Мое приложение CakePHP использовало сеансы на основе файлов, что означало, что к основным файлам CakePHP можно было получить доступ только по одному запросу в любой момент времени. Переключение на сеансы memcache решило это. – Ben
Сеансы, блокирующие несколько запросов? Не видел, что придет :) Рад, что вы нашли проблему tho '. – laander