Мне любопытно узнать, есть ли способ периодически запускать метод или задачу для обновления кэшированной общей переменной, которая возвращается при вызове запроса Get для WebAPI.
Переменная представляет собой простую короткую строку json и предназначена для использования в качестве значения по умолчанию, общего для всех вызывающих сторон извне.Однако само значение не обязательно всегда одно и то же, оно вычисляется, что может занять несколько секунд при запуске при вызове метода webcontroller, добавляя время для возвращения строки.Поэтому я хотел бы сохранить строковую переменную в кэше для быстрого возврата при вызове и периодически выполнять вычисления в фоновом режиме, возможно, в минуту или в аналогичный период времени.
Я знаю, как правильно кэшировать значение, и так как это значение по умолчанию, общее для всех вызывающих, мне не нужно думать об обработке сеанса и тому подобном.Чего я не знаю, так это как периодически выполнять вычисления для кэшированного значения в рамках проекта WebAPI.Я не хочу делать это, используя внешние вызовы или отдельные сервисы / приложения, я предпочтительно ищу способ сделать это в самом проекте WebAPI.
Я знаю, что WebAPI, использующий Rest, обычно делается полностью не имеющим состояния, и я также знаю о временных ограничениях, которые существуют для пула приложений.Я не возражаю против этих ограничений, в худшем случае, если каждые 20 минут (если API был бездействующим) или более 1400 + минут, когда приложение удаляется, Get-запросу потребуется несколько секунд дополнительных секунд, чтобы вернуть вычисленное значение.значение вместо пустого кеша.
Я читал, что может быть способ сделать это, используя метод webcontroller, кеш и метод обратного вызова, который запускается, когда таймер кеша заканчивается для вызова метода контроллера.Если это так, если кто-нибудь может рассказать о том, как это может работать, или дать мне какие-нибудь советы о том, как это сделать другими способами, я был бы очень признателен