我有一个自定义的Windows服务,我想使用Quartz .NET来安排服务运行时间。现在,我了解了quartz.NET的基础知识,但我不确定如何将其连接到Windows服务。假设我想每小时运行Service.exe,我该如何通过Quartz实现这个功能呢?虽然这是一个比较模糊的问题,但确实没有其他更好的问法。
提前感谢您的帮助。
提前感谢您的帮助。
// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();
// construct job info
JobDetail jobDetail = new JobDetail("myJob", null, typeof(DumbJob));
// fire every hour
Trigger trigger = TriggerUtils.MakeHourlyTrigger();
// start on the next even hour
trigger.StartTime = TriggerUtils.GetEvenHourDate(DateTime.UtcNow);
trigger.Name = "myTrigger";
sched.ScheduleJob(jobDetail, trigger);
public class DumbJob : IJob
{
public void Execute(JobExecutionContext context)
{
string instName = context.JobDetail.Name;
string instGroup = context.JobDetail.Group;
// Note the difference from the previous example
JobDataMap dataMap = context.MergedJobDataMap;
string jobSays = dataMap.GetString("jobSays");
float myFloatValue = dataMap.GetFloat("myFloatValue");
ArrayList state = (ArrayList) dataMap.Get("myStateData");
state.Add(DateTime.UtcNow);
Console.WriteLine("Instance {0} of DumbJob says: {1}", instName, jobSays);
}
}
你也可以在Windows服务中启动一个线程,跟踪上次运行exe的时间,并在重置后重新启动。这比Quartz简单一些,但可以实现相同的功能。但是,你的问题是与Quartz相关的。