QuartzTask.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. using Quartz;
  2. using Quartz.Impl;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Collections.Specialized;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using Utils;
  10. namespace PMS.NetCore.Service
  11. {
  12. public class QuartzTask
  13. {
  14. /// <summary>
  15. /// 运行定时任务
  16. /// </summary>
  17. /// <returns></returns>
  18. public async Task RunAsync()
  19. {
  20. NlogHelper.quartzLogger.Info("开始 RunAsync");
  21. StdSchedulerFactory factory = new StdSchedulerFactory();
  22. //通过工场类获得调度器
  23. var _scheduler = await factory.GetScheduler();
  24. //开启调度器
  25. await _scheduler.Start();
  26. #region 昆山项目使用定时任务
  27. if (AppSettingsHelper.Configuration["company"]?.ToString() == "kunshan")
  28. {
  29. #region 执行发短信作业 注释掉,暂不执行
  30. ////创建触发器(也叫时间策略)
  31. //var trigger = TriggerBuilder.Create()
  32. // .StartNow()
  33. // //.WithSimpleSchedule(x => x.WithIntervalInMinutes(2).RepeatForever())//每10秒执行一次
  34. // //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever()) //每5分钟执行一次
  35. // .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(8, 0)) //每天8:00执行
  36. // .Build();
  37. ////创建作业实例
  38. ////Jobs即我们需要执行的作业
  39. //var jobDetailkunshan = JobBuilder.Create<KunshanPayCostSmsJob>()
  40. // .WithIdentity("Myjobkunshan", "group")//我们给这个作业取了个“Myjob”的名字,并取了个组名为“group”
  41. // .Build();
  42. ////将触发器和作业任务绑定到调度器中
  43. //await _scheduler.ScheduleJob(jobDetailkunshan, trigger);
  44. #endregion
  45. }
  46. #endregion
  47. #region 中浩德系统使用定时任务
  48. if (AppSettingsHelper.Configuration["company"]?.ToString() == "zhonghaode")
  49. {
  50. #region 执行进度报告发邮件作业
  51. ////创建触发器(也叫时间策略)
  52. var trigger = TriggerBuilder.Create()
  53. .StartNow()
  54. //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever())//每10秒执行一次
  55. //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever()) //每5分钟执行一次
  56. .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(8, 0)) //每天8:00执行
  57. .Build();
  58. //创建作业实例
  59. //Jobs即我们需要执行的作业
  60. var jobDetail = JobBuilder.Create<SendEmailJob>()
  61. .WithIdentity("Myjob", "group")//我们给这个作业取了个“Myjob”的名字,并取了个组名为“group”
  62. .Build();
  63. //将触发器和作业任务绑定到调度器中
  64. await _scheduler.ScheduleJob(jobDetail, trigger);
  65. #endregion
  66. #region 执行给王帅发邮件作业
  67. //创建触发器(也叫时间策略)
  68. var triggerWang = TriggerBuilder.Create()
  69. .StartNow()
  70. //.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever())//每10秒执行一次
  71. .WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever()) //每5分钟执行一次
  72. //.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(8, 0)) //每天8:00执行
  73. .Build();
  74. //创建作业实例
  75. //Jobs即我们需要执行的作业
  76. var jobDetailWang = JobBuilder.Create<SendEmailToChairmanJob>()
  77. .WithIdentity("MyjobWang", "group")//我们给这个作业取了个“Myjob”的名字,并取了个组名为“group”
  78. .Build();
  79. //将触发器和作业任务绑定到调度器中
  80. await _scheduler.ScheduleJob(jobDetailWang, triggerWang);
  81. #endregion
  82. }
  83. #endregion
  84. #region 物业缴费订单定时处理任务
  85. ////创建触发器(也叫时间策略)
  86. var triggerBywy = TriggerBuilder.Create()
  87. .StartNow()
  88. .WithSimpleSchedule(x => x.WithIntervalInSeconds(3).RepeatForever())//每3秒执行一次
  89. .Build();
  90. //创建作业实例
  91. //Jobs即我们需要执行的作业
  92. var jobDetailBywy = JobBuilder.Create<WyOrderJob>()
  93. .WithIdentity("Myjobwy", "group")//我们给这个作业取了个“Myjobwy”的名字,并取了个组名为“group”
  94. .Build();
  95. //将触发器和作业任务绑定到调度器中
  96. await _scheduler.ScheduleJob(jobDetailBywy, triggerBywy);
  97. #endregion
  98. }
  99. }
  100. }