У меня есть действие, которое возвращает только строку JSON с информацией.Является ли Task.Delay безопасным для использования в ASP.NET?
Чтобы запретить пользователям редактировать JS-код, который обновляет информацию каждые 2 секунды, мне также нужна задержка на стороне сервера, чтобы предотвратить высокую загрузку процессора.
Насколько безопасно использовать Task.Delay(2000)
, если есть (например) пользователи 2000-5000, выполняющие одинаковый запрос одновременно? Возвращаемая информация различна для каждого пользователя.
Я не полностью понять, чего вы хотите достичь, но почему бы не использовать какую-то очередь и выполнить операцию по таймеру? –
@ Константин Пешехонов IIS уже использует очереди, поддерживает дросселирование * и * кэширование результатов. Нет необходимости повторно изобретать их –
@AlekPsk, что вы описываете, не является высокой нагрузкой на запрос. У HTTP, IIS и ASP.NET есть способы обработки ответов на кеширование. Вы можете использовать кэширование вывода для индивидуальных ответов пользователей, например, с небольшим таймаутом в 2 секунды.Вы можете указать соответствующие заголовки, чтобы сам IIS возвращал кешированный ответ (например, ETag, Expires). Вы можете изменить свой клиент так, чтобы он запрашивал только версии обновлений с заголовком 'If-Modified-Since' или' If-None-Match' и последним ETag –