一、功能摘要:
1. 启动触发时间采用开源的Quartz.Net项目的Cron表达式:"0 0 12 * * ?" 每天中午12点触发
2. 多线程运行各任务,互不干扰。
3. 自动监视配置文件,配置文件更改后服务重启

二、运行机制:
1. 每个任务做为一个独立的运行线程 隐喻:工人
2. 服务本身做为一个独立线程 隐喻:监督工人
3. 监督工人每隔 N 秒轮询一次任务,如发现任务的触发时间小于间隔N 即创建该任务并且启动该任务。
4. 启动后的任务根据启动时间于特定时间执行任务。
5. 工人工作完本身任务后自动停止。待下一轮监督工人查看时清除任务对象。

三、任务驱动UML图

UML类图



四、项目内容:
1. CS.Scheduling.Framework 任务调度框架
2. CS.Task.DataTransfer 一个数据转存的任务示例(好像还没有写完,_)
3. CS.WinService.Demo WindsService的实现示例,该Demo直接调用任务调度框架。
4. CS.WinServiceManager WindwosService的服务管理器,这个可以算是一个分支了。用来安装和管理实现本框架的AppForm。

五、任务实现代码
1. 参见CS.WinService.TaskDemo的具体实现
2. 继承TaskProvider类后,重写protected override Result Work() 即可。

六、WindService的调试
1. 方法一:打开控制台,拖入CS.WinService.Demo的执行程序(该程序还是WinService)加上任一参数 如:-t 后回车
2. 方法二:通过CS.WinServiceManager安装服务。启用UDP监视器查看即。

附:
UDP调试器:UdpWatcher


Last edited Jun 25, 2010 at 4:20 AM by atwind, version 5

Comments

No comments yet.