Универсальный рабочий для 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, вы будете получать новый экземпляр.

Другие вопросы по тегам