Asp .Net MVC - запрос множителей - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть приложение MVC, которое предоставляет множество различных функций. Некоторые из этих функций требуют большого времени отклика, потому что связь с SAP (очередь сообщений) или сложная инструкция SQL в Oracle Database.

Когда пользователь выполняет какое-либо действие с этим приложением, его сеанс «блокируется»пока запрос не будет прекращен. Даже если он открывает новую вкладку браузера, сервер ожидает завершения первой транзакции, прежде чем он сможет начать обслуживание более поздней. Из-за этих действий, которые требуют большого времени отклика (в некоторых случаях 20 минут), пользователь не может использовать другие функции модуля, пока этот первый запрос не будет завершен.

Все мои методы следуют той же структуре ниже:

public class ProdutoController : ControleBase
{
    [HttpPost]
    public JsonResult Pesquisar(ProdutoPesquisa parametros)
    {
        ....
    }
}

Недавно я выполнил тест, который позволил выполнить несколько запросов для одного идентификатора сеанса, добавив примечание ниже ко всем моим контроллерам:

[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]

После этого измененияСервер больше не может хранить сеанс пользователя, и это устройство, которое я использую для хранения разрешений (кнопок, меню, функций) каждого пользователя. Эти разрешения получены путем запроса собственного API для выполнения определенных проверок. Оценивая экономическую выгоду, я не думаю, что было бы интересно повторять вызов этого API с каждым новым запросом, поскольку число ежедневных запросов значительно (приблизительно 1 миллион).

Есть ли другой способ обойтипроблема? Может ли использование методов в качестве Задач быть альтернативой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...