C#-如何在用C#设计一个定时任务平台
请教一下,如何用C#设计一个定时任务平台呢?可能要承担很多的定时任务,比如说定时备份数据库,定时发短信提醒,定时执行从某远程机器传输文件的功能。这些都是单独的程序。我只是希望有一个平台提供某种接口,能在平台内完成定时执行的任务。 希望有高手能指定一下。谢谢如何在用C#设计一个定时任务平台
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可以创建WindowsService
服务和Windows Form都可以,两者的区别无非是一个开启关闭频繁,一个不频繁,一个有界面,一个无界面。
如果把定时任务看成是一种计算机命令,我们可以这么解决:
1.制定所有定时任务的特定ID
2.建立一个UDP监听器,该监听器能监听某个端口的信息。
新增定时任务:
将特定ID和计划执行时间以及其他参数通过UDP协议传输到能被监听器监听到的端口。监听器监听到该信息后,先将信息保存到XML文件中,然后新建一个线程,这个线程的机制是:先使用Thread.Sleep(T),使线程睡眠T时间(计划时间-当前时间),然后根据特定ID和参数执行某个命令。
计算机关机和开机(服务)或者程序开启和关闭(Windows Form)处理:
由于计算机关机或者程序关闭属于人为不可控事件,所以不做处理,因为定时任务的有关信息已保存在XML文件中。当计算机开机或者程序开启时,重新建立线程,但排除T时间为负值的定时任务,该定时任务信息在所有线程重新建立后,从XML文件中删除。