Клиент отправляет запрос и улавливает исключение таймаута. Однако сервер все еще обрабатывает запрос и сохраняет его в базе данных. До этого клиент уже отправил второй запрос, который удваивает запись в базе данных. Как я могу предотвратить это? Я использую сервлеты java и javascript.Обработка тайм-аута запроса на стороне клиента в java
ответ
Несколько предложений: -
1) Увеличьте время ожидания клиента.
2) Сделайте сервер более эффективным, чтобы он мог быстрее реагировать.
3) Попросите сервера ответить промежуточным ответом «Я работаю над ним», прежде чем вернуться с основным ответом.
4) Нужно ли серверу делать все работа перед тем, как он отвечает клиенту, или может быть выгружен в отдельный процесс для запуска позже?
Клиент отправляет запрос и улавливает исключение таймаута. Однако сервер все еще обрабатывает запрос
Сделать сервлет генерировать некоторый вывод (может быть просто пробелом) и промывать поток так часто (каждые 15 секунд, например).
Если соединение было закрыто на стороне клиента, запись завершится с отключением сокета.
Перед тем, что происходит, клиент уже направил второй запрос, который удваивает запись в базе данных
Используйте атомарность базы данных, например, уникальный ключ. Запустите процесс, создав уникальную запись (возможно, в некотором «незавершенном» статусе), она не сработает, если запись уже существует.
- 1. Обработка изображений на стороне клиента
- 2. Обработка тайм-аута сеанса на стороне клиента
- 3. Обработка ошибок на стороне клиента WCF
- 4. Обработка запросов таймаута HTTP-клиента в связях keep-alive
- 5. Обработка на стороне клиента или на стороне сервера?
- 6. Обработка ошибок аутентификации на стороне клиента
- 7. Обработка пользовательских исключений на стороне клиента GWT
- 8. Обработка текстовых входов на стороне клиента
- 9. Запуск запроса на стороне клиента на сервере
- 10. отладка на стороне клиента на стороне клиента
- 11. Rikulo на стороне клиента на стороне клиента
- 12. Запрос на стороне клиента на стороне клиента
- 13. Как определить исключение таймаута клиента на стороне сервера?
- 14. Сбой таймаута PHP Curl Javascript на стороне клиента
- 15. Как установить тело запроса на стороне клиента
- 16. Проверка на стороне клиента строки запроса Elasticsearch
- 17. Обнаружение на стороне клиента метода HTTP-запроса
- 18. Профилирование Mongo на стороне клиента
- 19. Обработка таймаута сеанса на клиенте
- 20. Обработка таймаута изящно на Observable.FromAsyncPattern
- 21. сомнения на стороне клиента
- 22. Альтернативы select() на стороне клиента
- 23. Языки на стороне клиента
- 24. Обработка кода (на стороне клиента, а не на сервере)
- 25. Анализ и обработка кода на стороне клиента на C#
- 26. Обработка изображений на сервере или на стороне клиента?
- 27. Обработка состояния объекта домена на стороне клиента в модели представления
- 28. Сессии на стороне клиента
- 29. Ввод Java на стороне клиента netty
- 30. Кодирование строки на стороне клиента java
Err, увеличить таймаут? – EJP