Избегайте веб-приложения Java с несколькими запросами

Сторонняя интеграция, функция перенаправления браузера запускает множественный запрос (только IE), 2 запроса с разницей в 2 наносекунды. Я использую атрибут запроса, чтобы вычитать повторяющийся запрос и обрабатывать правильный запрос (первый запрос), дублирующий запрос отправляет сообщение об ошибке. Неожиданно браузер получает ошибку при первом запросе и останавливает дальнейший процесс (перенаправление на другой компонент из-за ошибки).

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

Как я могу остановить повторяющийся запрос? Могу ли я поместить Thread.sleep(20 sec) в запрос об ошибке, чтобы повторный запрос был перенаправлен через 20 секунд, к тому времени правильный запрос будет обработан и перенаправлен в браузер.

Это целесообразно?


person balamuruganv    schedule 16.12.2016    source источник
comment
Ваш вопрос очень сложно прочитать и понять, но если я вас правильно понял, решение таково: не отправлять сообщение об ошибке для второго запроса. Просто ничего не делайте, но не отправляйте сообщение об ошибке.   -  person Erwin Bolwidt    schedule 16.12.2016


Ответы (1)


Если я правильно понимаю ваш вопрос, ваша проблема: есть 2 запроса, и они отправляют их вместе в ваше веб-приложение, но 1 из запросов получил сообщение об ошибке.

Если это правильно. Решение будет зависеть от того, что ожидает клиент, какой ответ он ожидает в этом случае. У нас есть 2 пути:

  1. Вернуть сообщение об ошибке, когда 1 сообщение имеет проблему для клиента
  2. Игнорировать запрос об ошибке и отправить ответ на второй запрос.

С моей точки зрения, не используйте это:

Thread.sleep(20 сек)

Что произойдет, если обработка вашего запроса займет более 20 секунд. Надеюсь, поможет.

person BIZ    schedule 16.12.2016
comment
т. е. мета-тег обновления конкретной версии браузера, вызывающий 2 запроса. поток перенаправления браузера приложения: 1) сторонний компонент -> 2) компонент a (логика шины процесса) -> 3) компонент b. здесь компонент a получает 2 запроса. вот как я могу игнорировать второй запрос об ошибке? Браузер срабатывает 2 запроса и ждет ответа. - person balamuruganv; 16.12.2016
comment
если я удержу один запрос в течение 20 секунд, будет обработан другой запрос, затем браузер получит ответ, а затем перенаправит его на компонент b. через 20 секунд запрос об ошибке будет проигнорирован браузером - person balamuruganv; 16.12.2016