Универсальный рабочий для BackgroundService в.net core 3.0
Я хочу построить общий рабочий для BackgroundService в.net core 3.0.
Там, где у нас может быть 50 работников с одинаковым типом работы, за исключением двух разных параметров, которые необходимо передать.
Есть ли способ добавить hostedservice в ConfigureServices с объектом и получить этот объект в общий рабочий класс и работать с ним? Подобно,
var workers = new List<WorkerModel>();
foreach(var worker in workers){
services.AddHostedService<GenericWroker<WorkerModel>(item)>();
}
Руководство, чтобы получить работу будет признателен.
0 ответов
Я думаю, что вам нужно, чтобы ваш GenericWorker реализовал абстрактный класс BackgroundService
и зарегистрируйте это в Startup как временное. Затем вам понадобится пул GenericWorkers, в основном менеджер, после чего всякий раз, когда вам понадобится GenericWorker, вы должны создать его экземпляр, выполнивServiceprovider.GetRequiredService<GenericWorker<WorkerModel>>()
, с этим решением каждый раз, когда вы запрашиваете ServiceProvider для GenericWorker, вы будете получать новый экземпляр.