.NET Core 3.0中BackgroundService的通用工作者

时间:2019-04-01 04:32:57

标签: asp.net-core background-service asp.net-core-3.0 .net-core-3.0

我想在.net core 3.0中为BackgroundService构建通用工作程序。

除两个参数外,我们可能有50名工人从事相同类型的工作  需要通过其他方式。

有没有一种方法可以将托管服务添加到带有对象的ConfigureServices中  并在通用工作者类中获取该对象并使用它?  就像

    var workers = new List<WorkerModel>(); 

    foreach(var worker in workers){  
          services.AddHostedService<GenericWroker<WorkerModel>(item)>();
    }

完成工作的指导将不胜感激。

1 个答案:

答案 0 :(得分:1)

我认为您需要的是GenericWorker来实现抽象类BackgroundService并将其注册为Startup中的临时类。然后,您将需要一个GenericWorkers池,基本上是一个经理,此后,每当需要GenericWorker时,都应通过执行Serviceprovider.GetRequiredService<GenericWorker<WorkerModel>>()实例化一个,使用此解决方案,每当您为GenericWorker请求ServiceProvider时,都会得到一个新的实例。