Я работаю над приложением уровня предприятия.У меня есть таблица событий в базе данных.Мне нужно обновить состояния моих событий в базе данных на точную дату и время.Максимальная задержка 200 миллисекундПоскольку моя таблица событий со временем будет расти, я думаю, что длительный опрос может быть проблемой производительности.В моем приложении, которое является веб-API net.core, я хочу построить структуру, которая принимает ScheduledTask и каким-то образом спит до следующего времени TimeToExecute.
public class ScheduledTask
{
public string CurrentState {get; set;}
public string NextState {get; set;}
public DateTime TimeToExecute {get; set;}
}
Поэтому, чтобы преодолеть мою ситуацию, я бы использовал;
IHostedService
;При таком подходе мне не нужен сторонний инструмент.Я могу ввести IHostedService
и использовать его.Я могу проверять список каждые 150 мс и выполнять процесс обновления асинхронно.
HangFire
;Когда я искал, этот инструмент работает так же, как IHostedService
более или менее.
Мой вопрос:
Есть ли в режиме реального времениподход к решению моей проблемы?
PS: Я предпочитаю держать его на уровне приложений и не зависеть от среды.Но я открыт для всех решений.