ASP.NET Core 2.1 如何在后台运行一个任务

 
更多

在许多应用程序中,我们需要后台运行一些任务,例如定时任务、异步处理或长时间运行的计算。ASP.NET Core 2.1 提供了一种简单而强大的方式来在后台运行这些任务,并且通过使用 Hosting Services 和后台任务队列等新的功能,可以轻松地实现这一目标。

创建一个后台服务

要在 ASP.NET Core 2.1 中运行一个后台任务,首先需要创建一个后台服务。后台服务是一个实现了IHostedService接口的类,它负责在应用程序启动时启动后台任务,并在应用程序关闭时停止任务。

public class MyBackgroundService : IHostedService
{
    private readonly ILogger<MyBackgroundService> _logger;
    private Task _backgroundTask;
    
    public MyBackgroundService(ILogger<MyBackgroundService> logger)
    {
        _logger = logger;
    }
    
    public Task StartAsync(CancellationToken cancellationToken)
    {
        _logger.LogInformation("后台任务已启动");
        _backgroundTask = Task.Run(DoWork);
        return Task.CompletedTask;
    }
    
    public Task StopAsync(CancellationToken cancellationToken)
    {
        _logger.LogInformation("后台任务已停止");
        return Task.CompletedTask;
    }
    
    private async Task DoWork()
    {
        // 执行后台任务的逻辑
    }
}

在上面的示例中,我们创建了一个名为MyBackgroundService的后台服务类,它接收一个ILogger实例来记录日志。StartAsync方法在应用程序启动时被调用,其中我们开始一个后台任务DoWork,并且在StopAsync方法中停止任务。DoWork方法是我们实际执行后台任务的地方,可以在其中编写任何需要后台运行的代码。

注册后台服务

要将我们的后台服务注册到 ASP.NET Core 2.1 应用程序中,我们需要在Startup.cs文件中的ConfigureServices方法中使用AddHostedService方法进行注册。

public void ConfigureServices(IServiceCollection services)
{
    services.AddHostedService<MyBackgroundService>();
    // 其他服务的注册
}

如果你有其他服务需要注册,可以在此处添加。

启动后台服务

在我们的应用程序启动时,后台服务会自动启动。我们不需要手动调用StartAsync方法,它将由 ASP.NET Core 2.1 自动调用。

停止后台服务

当我们的应用程序关闭时,后台服务会自动停止。我们不需要手动调用StopAsync方法,它也将由 ASP.NET Core 2.1 自动调用。

总结

在本博客中,我们介绍了如何在 ASP.NET Core 2.1 中后台运行一个任务。我们创建了一个后台服务,并使用IHostedService接口和AddHostedService方法将其注册到应用程序中。通过这种方式,我们可以轻松地在后台运行一些任务,同时保持应用程序的稳定性和可扩展性。

希望这篇博客对您有所帮助,如果您有任何问题或建议,请随时在下方留言。感谢阅读!

打赏

本文固定链接: https://www.cxy163.net/archives/9025 | 绝缘体

该日志由 绝缘体.. 于 2018年12月08日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: ASP.NET Core 2.1 如何在后台运行一个任务 | 绝缘体
关键字: , , , ,

ASP.NET Core 2.1 如何在后台运行一个任务:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter