Pixysoft.Framework.Schedular 作业调度 开发实录
由于在开发healthcheck的时候遇到发送email的问题,决定提前搞一个分布式集中控制的作业调度系统。
开发周期无法确定,可能很久。
所谓调度:
在什么条件下,以什么方式通知对方干什么
例如
每天12点发短信通知我起床。
条件 = 时间,每天12点
方式 = 发短信
干什么= 信息发送
当数据库崩溃的时候,发送检查报告到服务器。
这个不是调度,这个已经和业务逻辑绑定了。
当检查报告没有通过的时候,发送email通知管理员
条件 = 时间 = 立刻
方式 = email
干什么 = 信息发送
每天12点,数据库自动备份数据一次
每天12点,对销售汇总一次、对员工提成统计一次。。。。
如果要实现这种调度,除了时间条件外,其他的几乎要重写。
可能使用了反射加载机制。
!!典型的符合时间条件、不符合方式、干什么
当库存小于10的时候,自动建立配货单,并通知管理员
同上
!!典型的不符合时间条件、符合方式或干什么
---------------
综上分析,
如果是时间条件下,以某种方式传递文本信息;则可以形成框架。
如果是不符合时间条件,以某种方式传递文本信息;可以用立即执行的方式+具体代码 模拟调度系统。
= 调度系统配置了一个立即执行的调度
如果是时间条件下,处理具体的业务;例如数据库备份等 = 调度系统触发了时间,但是实现机制由用户负责。
= 继承了调度接口 + 注册了触发机制
不符合时间条件下,处理具体的业务; 库存小于10,添加配货单
= 管我X屁事!
---------------------------------------------------------------
开始时间: 2010-02-10
结束时间:2010-02-21
用了21天,主要中途玩了几天的开心网餐厅,然后搞了其他垃圾的事情。。。。。真是慢。。