QuartzJobRunner.cs 786 B

123456789101112131415161718192021222324252627
  1. using System;
  2. using Microsoft.Extensions.DependencyInjection;
  3. using Microsoft.AspNetCore.Hosting;
  4. using Microsoft.Extensions.Hosting;
  5. using Microsoft.Extensions.Logging;
  6. using Quartz;
  7. using Quartz.Spi;
  8. using FMSAdmin.Data;
  9. using System.Linq;
  10. using FMSAdmin.Helpers;
  11. using System.Threading.Tasks;
  12. public class QuartzJobRunner : IJob {
  13. private readonly IServiceProvider _provider;
  14. public QuartzJobRunner(IServiceProvider provider) {
  15. _provider = provider;
  16. }
  17. public async Task Execute(IJobExecutionContext context) {
  18. using (var scope = _provider.CreateScope()) {
  19. var jobType = context.JobDetail.JobType;
  20. var job = scope.ServiceProvider.GetRequiredService(jobType) as IJob;
  21. await job.Execute(context);
  22. }
  23. }
  24. }