http://www.cnblogs.com/bobositlife/p/aspnet-mvc-csharp-quartz-net-timer-task-scheduler.html
用这个,调度作业执行就行。谁用谁知道,当年DUDU推荐给我,我现在推荐给你。
谢谢,有没有简单的 方法,现在没时间看啊
@太阳风~Endless: 这个就很简单阿!顶多半个小时就搞定了,上面写的有方法呢!每一分钟判断一次,系统当前时间等于不等于你设定的时间就行了!取整时就行!
@贫民窟大侠: 这样会有一分钟的误差啊,比如:前一次判断时间是: 7点59分50秒,那么下一个判断时间是:8点0分50秒,这时候已经过去50秒了,我要的是8点整执行。如果每一秒判断一次的频率又太高了
@太阳风~Endless: 想太精确不可能阿!误差在1分钟以内都行的,你看个网页都会有些许的延迟,更别说这种东西。要是这个不行的话,试试@爱编程大叔分享的那个园友的博文的方式,这种方式有弊端,依赖IIS。也就是你的IIS正常的运行的情况下才能正常运行,IIS要是出点问题,就不执行了。
while(true){
计算下一次执行时间与现在的时间差
休眠这么长时间
执行工作
}
用quartz建立触发器:
TriggerBuilder.Create()
.WithIdentity("定时触发器", "每天1次,12点")
.WithDailyTimeIntervalSchedule( d => d.StartingDailyAt(new TimeOfDay(12,0)))
.Build();
我在某个项目中建立的winService是topshelf+quartz。
https://msdn.microsoft.com/zh-cn/magazine/dn745865.aspx