我如何 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

您可以做的是创建一个托管服务,注入您现在的令牌服务,并在需要时从托管服务中调用所需的功能。

框架将在启动过程中启动托管服务。