TimeJobManger.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Configuration;
  2. using System.Threading;
  3. using System.Threading.Tasks;
  4. using Abp.Dependency;
  5. using Abp.Domain.Services;
  6. using Abp.Domain.Uow;
  7. using Abp.Quartz;
  8. using Abp.Threading;
  9. using Quartz;
  10. namespace ContractService.Quartz
  11. {
  12. public class TimeJobManger:DomainService
  13. {
  14. public TimeJobManger(IQuartzScheduleJobManager jobManager, IIocManager iocManager)
  15. {
  16. JobManager = jobManager;
  17. IocManager = iocManager;
  18. }
  19. public IQuartzScheduleJobManager JobManager { get; }
  20. private IIocManager IocManager { get; }
  21. public void StartKpNotify()
  22. {
  23. Logger.Info("TimeJob-【StartKpNotify】");
  24. var cron = ConfigurationManager.AppSettings["QuartJob.KpNotify.Cron"] ?? "0 5 0,12 * * ? *";
  25. JobManager.ScheduleAsync<TimeKeyPointJob>(job=>job.WithIdentity("TimeKeyPointJob", "Notify").WithDescription("关键点通知任务"), trigger=> trigger.StartNow().WithCronSchedule(cron));
  26. Task.Run(async () =>
  27. {
  28. using (IocManager.ResolveAsDisposable<IUnitOfWorkManager>().Object.Begin())
  29. {
  30. await IocManager.Resolve<TimeKeyPointJob>().KpNotify();
  31. }
  32. }
  33. );
  34. }
  35. }
  36. }