打印服务
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.6 KiB

3 years ago
  1. using Quartz;
  2. using Quartz.Impl;
  3. using System;
  4. using System.Collections.Specialized;
  5. using System.Threading.Tasks;
  6. using POSCorePrint.Jobs;
  7. using System.Net;
  8. using System.Net.Sockets;
  9. namespace POSCorePrint
  10. {
  11. public class TaskStart
  12. {
  13. public string PrintTaskTime { get; } = Constant.Configuration["taskTimes:printTaskTime"];
  14. public async Task Start()
  15. {
  16. try
  17. {
  18. // 从工厂中获取调度程序实例
  19. NameValueCollection props = new NameValueCollection
  20. {
  21. { "quartz.serializer.type", "binary" }
  22. };
  23. StdSchedulerFactory factory = new StdSchedulerFactory(props);
  24. IScheduler scheduler = await factory.GetScheduler();
  25. // 开启调度器
  26. await scheduler.Start();
  27. #region//打印任务
  28. IJobDetail job = JobBuilder.Create<PrintJob>()
  29. .WithIdentity("PrintJob", "group")
  30. .Build();
  31. // 定时获取打印任务
  32. ITrigger trigger = TriggerBuilder.Create()
  33. .WithIdentity("PrintTrigger", "group")
  34. .WithCronSchedule(PrintTaskTime)
  35. .Build();
  36. // 告诉Quartz使用我们的触发器来安排作业
  37. await scheduler.ScheduleJob(job, trigger);
  38. #endregion
  39. }
  40. catch (SchedulerException se)
  41. {
  42. await Console.Error.WriteLineAsync($"{DateTime.Now.ToString()}:{se.ToString()}");
  43. }
  44. }
  45. }
  46. }