ASP.NET Core как реализовать сервис, обновляющий данные каждые 3 секунды?
Имеется список подразделений организации. Каждое подразделение имеет уникальное наименование, статус(Активно/Заблокировано). Данные о статусе подразделений отдает сервис А. Статус каждого подразделения должен изменяться каждые 3 секунды. Я пытаюсь реализовать сервис с использованием службы System.Threading.Timer. Проблема в том, что делегат Timer не позволяет возвращать значение(только void), как мне правильно реализовать передачу данных в таком случае?
Ответы (1 шт):
Как я понял, вам нужен постоянно работающий сервис. Или, во всяком случае, долго работающий.
В ASP.NET это реализуется с помощью hosted services.
Background tasks with hosted services in ASP.NET Core. Пример кода как раз использует таймер.
Как я понял, вы хотите посылать сообщения с сервера на клиент.
Используйте для этого технологию SignalR.
Благодаря веб-сокетам сервер может сам посылать сообщения. Клиентам нет нужды делать постоянный опрос (polling).