首页新闻找找看学习计划

C#写windows服务,如何让服务定点执行,比如8点、12点,18点?

0
悬赏园豆:10 [待解决问题]

C#写windows服务,如何让服务定点执行,比如8点、12点,18点?注意:不是让服务每隔一段时间执行,而是让服务定点执行,(不考虑任务计划)?求解

C#
太阳风~Endless的主页 太阳风~Endless | 初学一级 | 园豆:8
提问于:2016-03-23 15:07
< >
分享
所有回答(5)
0

http://www.cnblogs.com/bobositlife/p/aspnet-mvc-csharp-quartz-net-timer-task-scheduler.html

用这个,调度作业执行就行。谁用谁知道,当年DUDU推荐给我,我现在推荐给你。

贫民窟大侠 | 园豆:4270 (老鸟四级) | 2016-03-23 15:09

谢谢,有没有简单的 方法,现在没时间看啊

支持(0) 反对(0) 太阳风~Endless | 园豆:8 (初学一级) | 2016-03-23 15:26

@太阳风~Endless: 这个就很简单阿!顶多半个小时就搞定了,上面写的有方法呢!每一分钟判断一次,系统当前时间等于不等于你设定的时间就行了!取整时就行!

支持(0) 反对(0) 贫民窟大侠 | 园豆:4270 (老鸟四级) | 2016-03-23 17:25

@贫民窟大侠: 这样会有一分钟的误差啊,比如:前一次判断时间是: 7点59分50秒,那么下一个判断时间是:8点0分50秒,这时候已经过去50秒了,我要的是8点整执行。如果每一秒判断一次的频率又太高了

支持(0) 反对(0) 太阳风~Endless | 园豆:8 (初学一级) | 2016-03-24 10:23

@太阳风~Endless: 想太精确不可能阿!误差在1分钟以内都行的,你看个网页都会有些许的延迟,更别说这种东西。要是这个不行的话,试试@爱编程大叔分享的那个园友的博文的方式,这种方式有弊端,依赖IIS。也就是你的IIS正常的运行的情况下才能正常运行,IIS要是出点问题,就不执行了。

支持(0) 反对(0) 贫民窟大侠 | 园豆:4270 (老鸟四级) | 2016-03-24 10:30
0

两天前才有人在博客园写过博文,就是和这个有关的,所以你都不认真看博客是吗?

开源任务管理平台TaskManagerV2.0介绍及升级说明

爱编程的大叔 | 园豆:29862 (高人七级) | 2016-03-23 15:14

谢谢,但是信息量有点大,有简单的方法么

支持(0) 反对(0) 太阳风~Endless | 园豆:8 (初学一级) | 2016-03-23 15:25
2

while(true){

计算下一次执行时间与现在的时间差

休眠这么长时间

执行工作

}

刘宏玺 | 园豆:14004 (专家六级) | 2016-03-23 16:11
0

while(true) {var dt = DateTime.Now();

if(dt.Second==0) { ... } else {Sleep(500);}

}

 

按我说,还不如计划任务...

c99 | 园豆:1838 (小虾三级) | 2016-03-23 16:37
0

用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

不会Redis | 园豆:453 (菜鸟二级) | 2016-03-24 14:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册