.net Blazor Server应用程序-安排例行任务

ffvjumwh  于 2022-11-26  发布在  .NET
关注(0)|答案(1)|浏览(119)

我有一个Blazor Server .Net 6应用程序。我希望在此应用程序中每小时调用一个函数。过去,我创建了一个Windows Server计划任务来调用执行此函数的网页。我想知道是否有任何不错的程序集/方法可以添加到我的应用程序中,使我可以改为执行此操作。另一个替代方案是创建一个Azure函数,但我想我会先调查一下我能在Blazor Server应用程序的Relms中做些什么。
短暂性脑缺血

4uqofj5v

4uqofj5v1#

您可以为此使用具有计时器的自订服务。例如:

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();

相关问题