Один из запросов AJAX к моему серверу node.js иногда может занимать более двух минут. Я обнаружил, что когда серверу требуется больше двух минут, клиент повторно отправляет запрос AJAX. Это заставило сервер еще больше увязнуть, так как он запустил второй дорогостоящий процесс.
Чтобы обойти это, я реализовал на сервере решение для длинных опросов. Клиент делает ajax-вызов функции проверки на сервере, которая просто проверяет, завершен ли процесс, и перепроверяет каждые пять секунд и возвращает клиенту, когда это будет сделано.
Однако у меня все еще есть вариация двухминутной задачи. Через две минуты поступает второй вызов проверки AJAX. Затем выполняются обе проверки, и кажется, что только новая будет связываться с клиентом.
Каков наилучший способ решить эту проблему?
- Есть ли способ настроить или отключить двухминутную повторную отправку ajax?
- Есть ли лучший способ управлять последующими дублирующими запросами на сервер?
- Нужно ли мне реализовать тайм-аут на клиенте вместо сервера?
Я использую вызовы jQuery AJAX, сервер node.js в браузере Chrome.
ОБНОВЛЕНИЕ: Из документов node.js "все входящие соединения имеют тайм-аут по умолчанию 2 минуты». Меня по-прежнему интересуют предложения о наилучшей практике кодирования длительных запросов к серверу, когда клиенту не нужно ничего знать, пока сервер не завершит работу.