Ответ .Net Core backend API будет возвращаться только после завершения каждого вызова (пользователи ждут запросов друг друга …)

#c# #.net #.net-core #backend

#c# #.net #.net-core #серверная

Вопрос:

Я видел странное поведение в одном из наших сервисов, и я понятия не имею о возможной основной причине.

Когда я вызываю серверный API примерно 20 раз одновременно, я получаю ответ одновременно от 20 вызовов… это означает, что если есть только 1 вызов, он завершится в течение секунды, если используется 20, они завершатся в течение 8 секунд.

Я внес некоторые записи в контроллер и увидел, что первый ответ ok был отправлен до запуска 6., но даже в этом случае я получил ответ одновременно с другими.

Есть ли у вас какие-либо идеи, в чем может быть проблема с серверной службой?

Заранее спасибо!

Комментарии:

1. Есть ли какие-либо блокировки в вашем сервисе?

2. Какой тип базы данных вы используете? Похоже, вы не используете базу данных, предназначенную для нескольких пользователей. Excel и Access не предназначены для многопользовательских пользователей и часто ведут себя аналогично тому, что вы видите.

3. Никаких блокировок нет, и я использую elastic в качестве базы данных. Но я думаю, что оба они не связаны с текущей темой, поскольку моя проблема в том, что я ожидаю получить ответ, как только отправлю ответ ok. Первый «return new OkObjectResult (result)» был вызван еще до запуска всех вызовов, но все равно не получил ответ от серверной части, пока все они не были завершены.

4. Можете ли вы опубликовать какой-нибудь код, чтобы согласиться с этим, может быть, ваш контроллер или методы, которые он реализует?