我有一个服务可以获取令牌并保存在缓存中,我添加了如下所示的服务,但是当应用程序启动时它没有运行 我需要做什么才能在启动时触发此服务
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();
}
如果这是需要在后台运行的服务,请考虑将其与托管服务一起使用
使用 ASP.NET 核心中的托管服务引用后台任务
我需要每 50 分钟触发一次
您可以做的是创建一个托管服务,按现在的方式注入令牌服务,并在需要时从托管服务中调用所需的函数。
框架工作将在启动过程中启动托管服务。