打印服务
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.

52 lines
1.6 KiB

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<PrintJob>()
.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()}");
}
}
}
}