我如何 run/trigger 在 startup.cs 服务?
How do I run/trigger service in startup.cs?
我有一个获取令牌并保存在缓存中的服务,我添加了如下所示的服务,但它不是运行当应用程序启动时,我需要做什么才能在启动时触发此服务
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<ITokenService,TokenService>();
}
调用services.AddScoped
只是将其添加到服务集合中。结果什么也没有发生,即它不会自动新建一个实例和运行它上面的一些方法。
如果您需要在启动时发生一次,您需要在 Program.cs
:
中实际执行
public static void Main(string[] args)
{
var host = CreateWebHostBuilder(args).Build();
var tokenService = host.Services.GetRequiredService<ITokenService>();
tokenService.DoSomething();
host.Run();
}
如果这是一项需要在后台 运行 的服务,请考虑将其与托管服务一起使用
参考Background tasks with hosted services in ASP.NET Core
I need to trigger it after every 50 min
您可以做的是创建一个托管服务,注入您现在的令牌服务,并在需要时从托管服务中调用所需的功能。
框架将在启动过程中启动托管服务。
我有一个获取令牌并保存在缓存中的服务,我添加了如下所示的服务,但它不是运行当应用程序启动时,我需要做什么才能在启动时触发此服务
public void ConfigureServices(IServiceCollection services)
{
services.AddScoped<ITokenService,TokenService>();
}
调用services.AddScoped
只是将其添加到服务集合中。结果什么也没有发生,即它不会自动新建一个实例和运行它上面的一些方法。
如果您需要在启动时发生一次,您需要在 Program.cs
:
public static void Main(string[] args)
{
var host = CreateWebHostBuilder(args).Build();
var tokenService = host.Services.GetRequiredService<ITokenService>();
tokenService.DoSomething();
host.Run();
}
如果这是一项需要在后台 运行 的服务,请考虑将其与托管服务一起使用
参考Background tasks with hosted services in ASP.NET Core
I need to trigger it after every 50 min
您可以做的是创建一个托管服务,注入您现在的令牌服务,并在需要时从托管服务中调用所需的功能。
框架将在启动过程中启动托管服务。