HostedService 的多个实例
Multiple Instances of HostedService
我想 运行 同一托管服务的多个实例。我尝试注册了两次:
services.AddHostedService<MyService>();
services.AddHostedService<MyService>();
但 ExecuteAsync 仅在一个实例上被调用。
但是如果我有两个不同的服务:
services.AddHostedService<MyServiceA>();
services.AddHostedService<MyServiceB>();
对每个调用 ExecuteAsync。
有没有办法运行同一个实例两次?我本质上想让两个工人服务做同样的事情。
现在 .net core 中的行为发生了变化,AddHostedService 现在添加了一个 Singleton 而不是 Transient 服务。
所以你可以试试这个:
services.AddSingleton<IHostedService, MyService>();
见 and this
我想 运行 同一托管服务的多个实例。我尝试注册了两次:
services.AddHostedService<MyService>();
services.AddHostedService<MyService>();
但 ExecuteAsync 仅在一个实例上被调用。
但是如果我有两个不同的服务:
services.AddHostedService<MyServiceA>();
services.AddHostedService<MyServiceB>();
对每个调用 ExecuteAsync。
有没有办法运行同一个实例两次?我本质上想让两个工人服务做同样的事情。
现在 .net core 中的行为发生了变化,AddHostedService 现在添加了一个 Singleton 而不是 Transient 服务。 所以你可以试试这个:
services.AddSingleton<IHostedService, MyService>();
见