我想在.net core 3.0中为BackgroundService构建通用工作程序。
除两个参数外,我们可能有50名工人从事相同类型的工作 需要通过其他方式。
有没有一种方法可以将托管服务添加到带有对象的ConfigureServices中 并在通用工作者类中获取该对象并使用它? 就像
var workers = new List<WorkerModel>();
foreach(var worker in workers){
services.AddHostedService<GenericWroker<WorkerModel>(item)>();
}
完成工作的指导将不胜感激。
答案 0 :(得分:1)
我认为您需要的是GenericWorker来实现抽象类BackgroundService
并将其注册为Startup中的临时类。然后,您将需要一个GenericWorkers池,基本上是一个经理,此后,每当需要GenericWorker时,都应通过执行Serviceprovider.GetRequiredService<GenericWorker<WorkerModel>>()
实例化一个,使用此解决方案,每当您为GenericWorker请求ServiceProvider时,都会得到一个新的实例。