Механизм планировщика заданий на основе времени - PullRequest
0 голосов
/ 26 сентября 2018

Я работаю над приложением уровня предприятия.У меня есть таблица событий в базе данных.Мне нужно обновить состояния моих событий в базе данных на точную дату и время.Максимальная задержка 200 миллисекундПоскольку моя таблица событий со временем будет расти, я думаю, что длительный опрос может быть проблемой производительности.В моем приложении, которое является веб-API net.core, я хочу построить структуру, которая принимает ScheduledTask и каким-то образом спит до следующего времени TimeToExecute.

public class ScheduledTask
{
    public string CurrentState {get; set;}
    public string NextState {get; set;}
    public DateTime TimeToExecute {get; set;}
}

Поэтому, чтобы преодолеть мою ситуацию, я бы использовал;

  1. IHostedService;При таком подходе мне не нужен сторонний инструмент.Я могу ввести IHostedService и использовать его.Я могу проверять список каждые 150 мс и выполнять процесс обновления асинхронно.

  2. HangFire;Когда я искал, этот инструмент работает так же, как IHostedService более или менее.

Мой вопрос:

Есть ли в режиме реального времениподход к решению моей проблемы?

PS: Я предпочитаю держать его на уровне приложений и не зависеть от среды.Но я открыт для всех решений.

...