У меня есть приложение Blazor Server .Net 6. У меня есть функция в этом приложении, которую я хотел бы вызывать каждый час. В прошлом я создал запланированную задачу Windows Server для вызова веб-страницы, выполняющей эту функцию. Мне было интересно, есть ли какие-нибудь хорошие сборки/методы, которые я мог бы добавить в свое приложение, которые позволили бы мне сделать это вместо этого. Другой альтернативой было создание функции Azure, но я подумал, что сначала изучу, что я могу сделать в рамках моего приложения Blazor Server.
ТИА
Для этого можно использовать специальный сервис с таймером. Например:
public class ExampleService : IDisposable
{
public Timer? CheckTimer { get; set; }
public async Task RunTimer()
{
CheckTimer = new Timer(async (e) =>
{
try
{
await Check();
}
catch (Exception ex)
{
}
},null,0, 30000); // define interval here
}
public async Task Check()
{
// DO YOUR STUFF HERE
}
public void Dispose()
{
CheckTimer.Dispose();
}
}
В вашей Program.cs запустите службу:
await builder.Services.GetRequiredService<ExampleService>().RunTimer();
Большое спасибо. Выглядит отлично. В итоге я использовал HangFire, у которого, казалось, было много функций.
Вы могли бы использовать хангфайр.