.Net核心控制台应用程序中的触发后台服务ExecuteAsync方法

编程入门 行业动态 更新时间:2024-10-28 03:30:57
本文介绍了.Net核心控制台应用程序中的触发后台服务ExecuteAsync方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在asp核心中创建控制台应用程序,它将在不同环境中作为后台服务运行.我使用了" Microsoft.Extensions.Hosting "提供的" BackgroundService "类.我想在程序启动时运行其" ExecuteAsync "方法.

I am creating console application in asp core which is going to run as background service in different environments. I have used "BackgroundService" class provided by "Microsoft.Extensions.Hosting". I want to run its "ExecuteAsync" method when my program gets started.

文件:Program.cs

File: Program.cs

public static void Main(string[] args) { var host = new HostBuilder() .ConfigureHostConfiguration(configHost => { }) .ConfigureServices((hostContext, services) => { services.AddHostedService<IHostedService,RabbitLister>(); }) .UseConsoleLifetime() .Build(); }

文件:RabbitLister.cs

File: RabbitLister.cs

public class RabbitLister : BackgroundService { private readonly IEventBus _eventBus; private readonly ILogger<RabbitLister> _logger; public RabbitLister() { } public RabbitLister(IEventBus eventBus, ILogger<RabbitLister> logger) { _eventBus = eventBus; _logger = logger; } protected override Task ExecuteAsync(CancellationToken stoppingToken) { _eventBus.SubscribeDynamic("myQueue"); return Task.CompletedTask; } }

推荐答案

构建主机后,调用 host.Run()

public static void Main(string[] args) { var host = new HostBuilder() .ConfigureHostConfiguration(configHost => { }) .ConfigureServices((hostContext, services) => { services.AddHostedService<IHostedService, RabbitLister>(); }) .UseConsoleLifetime() .Build(); //run the host host.Run(); }

这将启动托管服务并最终调用execute函数

that will start hosted service and eventually call the execute function

更多推荐

.Net核心控制台应用程序中的触发后台服务ExecuteAsync方法

本文发布于:2023-11-14 13:18:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587315.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:控制台   应用程序   后台   核心   方法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!