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