簡體   English   中英

blazor 服務器端:如何在特定時間啟動線程

[英]blazor server side: How to start a thread at a specific time

I want send SMS or Email or do something else in specific date and time for example in Birthday of customer at 11 am, where Datetime format birthday stored in SQL Database, by C# Blazor Server Side app. 我已閱讀https://www.codeproject.com/Articles/12117/Simulate-a-Windows-Service-using-ASP-NET-to-run-scC#:如何在特定時間啟動線程

有沒有更新或更好的建議來做到這一點?

正如 Panagiotis Kanavos 所說,Blazor 服務器端是 ASP.NET 核心服務器應用程序。 ASP.NET 內核內置庫來運行后台服務。 ASP.NET 內核可以運行 Blazor 服務和后台服務。

您可以使用 Blazor 處理用戶輸入,然后使用后台服務器在特定時間發送 Email。

更多細節,你可以參考這篇文章和下面的代碼示例:

public class TestHostedService: BackgroundService
{

    private readonly ILogger _logger;

    public TestHostedService(ILoggerFactory loggerFactory)
    {
        _logger = loggerFactory.CreateLogger<TestHostedService>();
    }


    protected async override Task ExecuteAsync(
        CancellationToken cancellationToken)
    {

        do
        {
 
            if (DateTime.Now.Hour == 11)
            {
                //do something
            }
            //fired every one hour
            await Task.Delay(TimeSpan.FromHours(1), cancellationToken);
        }
        while (!cancellationToken.IsCancellationRequested);

    }
}

要運行它,您應該將其添加為 HostedService。

    public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
            }).ConfigureServices((hostcontext, service) => {
                service.AddHostedService<TestHostedService>();
            });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM