using Quartz; using Quartz.Impl; using System; using System.Collections.Specialized; using System.Threading.Tasks; using POSCorePrint.Jobs; using System.Net; using System.Net.Sockets; namespace POSCorePrint { public class TaskStart { public string PrintTaskTime { get; } = Constant.Configuration["taskTimes:printTaskTime"]; public async Task Start() { try { // 从工厂中获取调度程序实例 NameValueCollection props = new NameValueCollection { { "quartz.serializer.type", "binary" } }; StdSchedulerFactory factory = new StdSchedulerFactory(props); IScheduler scheduler = await factory.GetScheduler(); // 开启调度器 await scheduler.Start(); #region//打印任务 IJobDetail job = JobBuilder.Create() .WithIdentity("PrintJob", "group") .Build(); // 定时获取打印任务 ITrigger trigger = TriggerBuilder.Create() .WithIdentity("PrintTrigger", "group") .WithCronSchedule(PrintTaskTime) .Build(); // 告诉Quartz使用我们的触发器来安排作业 await scheduler.ScheduleJob(job, trigger); #endregion } catch (SchedulerException se) { await Console.Error.WriteLineAsync($"{DateTime.Now.ToString()}:{se.ToString()}"); } } } }