ASP.NetCore5中定期调用两个后台服务的问题。
创始人
2024-09-17 12:00:55
0

首先,我们需要创建一个基于Timer的后台服务。然后,我们将在Startup.cs中注册他们,以便将它们添加到DI容器中。最后,我们使用IHostedService接口来启动和停止后台任务。

代码示例如下:

1.创建后台服务:

public class MyBackgroundService1 : BackgroundService
{
    private readonly ILogger _logger;

    public MyBackgroundService1(ILogger logger)
    {
        _logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            _logger.LogInformation("MyBackgroundService1 is running.");

            await Task.Delay(TimeSpan.FromSeconds(10), stoppingToken);
        }
    }
}

public class MyBackgroundService2 : BackgroundService
{
    private readonly ILogger _logger;

    public MyBackgroundService2(ILogger logger)
    {
        _logger = logger;
    }

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            _logger.LogInformation("MyBackgroundService2 is running.");

            await Task.Delay(TimeSpan.FromSeconds(5), stoppingToken);
        }
    }
}

2.注册服务:

public void ConfigureServices(IServiceCollection services)
{
    // Add timer based background services
    services.AddHostedService();
    services.AddHostedService();
}

3.启动和停止服务:

public class MyHostedService : IHostedService
{
    private readonly IEnumerable _hostedServices;

    public MyHostedService(IEnumerable hostedServices)
    {
        _hostedServices = hostedServices;
    }

    public async Task StartAsync(CancellationToken cancellationToken)
    {
        foreach (var hostedService in _hostedServices)
        {
            await hostedService.StartAsync(cancellationToken);
        }
    }

    public async Task StopAsync(CancellationToken cancellationToken)
    {
        foreach (var hostedService in _hostedServices.Reverse())
        {
            await hostedService.StopAsync(cancellationToken);

相关内容

热门资讯

aapoker外挂!wpk有机... aapoker外挂!wpk有机器人吗,微扑克ai机器人打德州,可靠教程(有挂了解)1)微扑克ai机器...
德扑起手牌胜率图!微扑克系统发... 德扑起手牌胜率图!微扑克系统发牌规律,wpk真的太假了,实用技巧(有挂规律)1、构建自己的微扑克辅助...
wepoke辅助挂!wpk真的... wepoke辅助挂!wpk真的有挂么,wepoke软件透明挂可以弄,教你攻略(有挂技巧)是一款可以让...
wepokeai代打的胜率!w... 1、wepokeai代打的胜率!wpk透视辅助器,wepoke有挂网上靠谱,细节揭秘(有挂教程);代...
wepoke辅助有挂!wpk微... wepoke辅助有挂!wpk微扑克俱乐部,微扑克发牌算法,教你攻略(有挂攻略)1)wepoke辅助有...
wepower有外挂!红龙扑克... wepower有外挂!红龙扑克辅助工具,wepokeai代打,2025新版教程(有挂透明)1、wep...
德扑ai助手!wepoke支持... 德扑ai助手!wepoke支持安卓吗,wepoke用模拟器,实用技巧(有挂攻略)德扑ai助手辅助器中...
微扑克有辅助挂!wpk德州职业... 微扑克有辅助挂!wpk德州职业代打,wpk俱乐部盈利模式,科技教程(有挂技巧);人气非常高,ai更新...
aapoker辅助!aapok... aapoker辅助!aapoker辅助工具存在吗,红龙扑克是真正规的,我来教教你(有挂教学)1.aa...
德州微扑克辅助!德州poker... 德州微扑克辅助!德州poker有外挂吗,德州aapoker俱乐部外挂,可靠教程(有挂规律)是一款可以...