2016-03-30 2 views
0

Я ищу окончательный ответ на это. Мне не удалось найти что-то окончательное в моей сети.WebAPI - Сессионные и асинхронные методы

  1. Обязательно ли использовать сеанс в службе WebAPI REST, нет, нет?

  2. Почему каждый пример, который я вижу, использует Async/Await? (В чем преимущество этого, поскольку каждый запрос уже живет в своей собственной нитке?)

Заранее благодарен!

ответ

2

Не стоит ли использовать сеанс в службе WebAPI REST?

Не строго запрещено, но в целом обескуражен. Это связано с тем, что данные сеанса могут ограничить вашу способность масштабирования.

Почему каждый пример, который я вижу, использует Async/Await? (В чем преимущество этого, если каждый запрос уже живет в его собственной нити?)

Это все бой, использующий меньшее количество потоков. Пока запрос (асинхронно) ожидает, он не будет использовать любую нить. Таким образом, async/await позволяет масштабировать реже. Async максимально использует ваш существующий пул потоков.

+0

Это действительно понятно и лаконично. Спасибо. –

2

для 2:

Что такое преимущество этого дается каждый запрос уже живет в своем собственном потоке?

Предполагается, что вызов WebApi будет находиться где-то рядом с другим асинхронным вызовом - например, вызовы базы данных. В этом случае Thread может быть повторно использован в ожидании результатов.

Не стоит ли использовать сеанс в службе WebAPI REST?

Не уверен в технически - но с точки зрения концепции служба REST не должна полагаться на сеансы.

+0

На самом деле я бы сказал, что это САМЫЕ случаи. Если у вас не очень редкий случай края, API на самом деле в какой-то момент сделает вызов IO. Крайные случаи, когда это не нужно, могут быть сделаны без асинхронизации. – TomTom

+0

Итак, я могу подумать о том, чтобы отправить что-то в очередь и сообщить об успехе, а также сделать зависимые вызовы ввода-вывода в одно и то же время, а затем объединить их как-то. Теперь это имеет смысл. Спасибо. Нет никакой другой магической причины, по которой я отсутствовал. –

Смежные вопросы