@@ -140,7 +140,7 @@ private async Task ProcessBatchCycleAsync(ParallelOptions parallelOptions, Cance
140140 return ;
141141 }
142142
143- await ProcessBatchAsync ( jobStorageRecords , storage , scope . ServiceProvider , parallelOptions ) ;
143+ await ProcessBatchAsync ( jobStorageRecords , storage , parallelOptions ) ;
144144 }
145145
146146 private async Task < IEnumerable < TStorageRecord > > FetchPendingJobsAsync (
@@ -162,7 +162,6 @@ private async Task<IEnumerable<TStorageRecord>> FetchPendingJobsAsync(
162162 private async Task ProcessBatchAsync (
163163 List < TStorageRecord > jobStorageRecords ,
164164 IJobStorageProvider < TStorageRecord > storage ,
165- IServiceProvider scopedServiceProvider ,
166165 ParallelOptions parallelOptions )
167166 {
168167 using var batchActivity = ActivitySource . StartActivity ( "ProcessBatch" ) ;
@@ -173,7 +172,7 @@ private async Task ProcessBatchAsync(
173172
174173 await Parallel . ForEachAsync ( jobStorageRecords , parallelOptions , async ( storedJob , ct ) =>
175174 {
176- await ExecuteJobAsync ( storedJob , storage , scopedServiceProvider , ct ) ;
175+ await ExecuteJobAsync ( storedJob , storage , ct ) ;
177176 } ) ;
178177
179178 batchStopwatch . Stop ( ) ;
@@ -184,7 +183,6 @@ await Parallel.ForEachAsync(jobStorageRecords, parallelOptions, async (storedJob
184183 private async Task ExecuteJobAsync (
185184 TStorageRecord storedJob ,
186185 IJobStorageProvider < TStorageRecord > storage ,
187- IServiceProvider scopedServiceProvider ,
188186 CancellationToken ct )
189187 {
190188 using var jobActivity = ActivitySource . StartActivity ( "ExecuteJob" ) ;
@@ -197,7 +195,8 @@ private async Task ExecuteJobAsync(
197195 {
198196 var jobType = Type . GetType ( storedJob . JobType ) ;
199197 var arguments = JsonConvert . DeserializeObject < object [ ] > ( storedJob . ArgumentsJson , _settings ) ;
200- var jobInstance = ActivatorUtilities . CreateInstance ( scopedServiceProvider , jobType ) ;
198+ using var scope = _serviceProvider . CreateScope ( ) ;
199+ var jobInstance = ActivatorUtilities . CreateInstance ( scope . ServiceProvider , jobType ) ;
201200 var method = jobType . GetMethod ( storedJob . MethodName ) ;
202201 await ( Task ) method . Invoke ( jobInstance , arguments ) ;
203202
0 commit comments