Как настроить контроллер веб-api .net core, который используется каждые несколько секунд

#rest #asp.net-core #singleton #webapi

Вопрос:

Общий концептуальный вопрос: У меня есть сервер веб-api .net core 2.2, на котором есть контроллер с методом get, который следует использовать каждые несколько секунд (скажем, каждые 10 секунд) — интересно, каков наилучший вариант для решения этого сценария:

  1. Оставьте жизненный цикл контроллера таким, как он есть, то есть инициируйте его при каждом запросе, и пусть фреймворк разбирается с ним (деструктор, сборщик мусора и т. Д.).
  2. Сделайте контроллер одноэлементным в области сервера, инициируйте его при запуске сервера и используйте этот экземпляр при каждом запросе.

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

1. лучший вариант-не заботиться о том, как часто выполняется действие. Так что пусть этим занимается фреймворк. Почему вас это должно волновать? для исполнения? экономия ресурсов? Вы хотя бы пробовали провести сравнительный анализ? Каждые 10 секунд не так часто, и на самом деле многие действия могут выполняться тысячи раз в секунду (и, конечно, контроллер просто создается стандартным способом для каждого запроса).

2. вы должны сосредоточиться на оптимизации основной логики внутри действий, а не пытаться сделать контроллер одноэлементным.