QuartzStartup.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using Quartz;
  2. using Quartz.Impl;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Threading.Tasks;
  7. namespace WCS.Service
  8. {
  9. public class QuartzStartup
  10. {
  11. private ISchedulerFactory _schedulerFactory;
  12. private IScheduler _scheduler;
  13. public async Task<string> Start()
  14. {
  15. //1、声明一个调度工厂
  16. _schedulerFactory = new StdSchedulerFactory();
  17. //2、通过调度工厂获得调度器
  18. _scheduler = await _schedulerFactory.GetScheduler();
  19. //3、开启调度器
  20. await _scheduler.Start();
  21. //4、创建一个触发器
  22. //var trigger = TriggerBuilder.Create()
  23. // .WithSimpleSchedule(x => x.WithIntervalInSeconds(2).RepeatForever())//每两秒执行一次
  24. // .Build();
  25. ////5、创建任务
  26. //var jobDetail = JobBuilder.Create<UserInfoSyncjob>()
  27. // .WithIdentity("job", "group")
  28. // .Build();
  29. ////6、将触发器和任务器绑定到调度器中
  30. //await _scheduler.ScheduleJob(jobDetail, trigger);
  31. return await Task.FromResult("将触发器和任务器绑定到调度器中完成");
  32. }
  33. public void Stop()
  34. {
  35. if (_scheduler == null)
  36. {
  37. return;
  38. }
  39. if (_scheduler.Shutdown(waitForJobsToComplete: true).Wait(30000))
  40. _scheduler = null;
  41. else
  42. {
  43. }
  44. }
  45. }
  46. }