Pixysoft.Framework.Schedular 作业调度 开发实录
由于在开发healthcheck的时候遇到发送email的问题,决定提前搞一个分布式集中控制的作业调度系统。
开发周期无法确定,可能很久。
所谓调度:
在什么条件下,以什么方式通知对方干什么
例如
每天12点发短信通知我起床。
条件 = 时间,每天12点
方式 = 发短信
干什么= 信息发送
当数据库崩溃的时候,发送检查报告到服务器。
这个不是调度,这个已经和业务逻辑绑定了。
当检查报告没有通过的时候,发送email通知管理员
条件 = 时间 = 立刻
方式 = email
干什么 = 信息发送
每天12点,数据库自动备份数据一次
每天12点,对销售汇总一次、对员工提成统计一次。。。。
如果要实现这种调度,除了时间条件外,其他的几乎要重写。
可能使用了反射加载机制。
!!典型的符合时间条件、不符合方式、干什么
当库存小于10的时候,自动建立配货单,并通知管理员
同上
!!典型的不符合时间条件、符合方式或干什么
---------------
综上分析,
如果是时间条件下,以某种方式传递文本信息;则可以形成框架。
如果是不符合时间条件,以某种方式传递文本信息;可以用立即执行的方式+具体代码 模拟调度系统。
= 调度系统配置了一个立即执行的调度
如果是时间条件下,处理具体的业务;例如数据库备份等 = 调度系统触发了时间,但是实现机制由用户负责。
= 继承了调度接口 + 注册了触发机制
不符合时间条件下,处理具体的业务; 库存小于10,添加配货单
= 管我X屁事!
---------------------------------------------------------------
开始时间: 2010-02-10
结束时间:2010-02-21
用了21天,主要中途玩了几天的开心网餐厅,然后搞了其他垃圾的事情。。。。。真是慢。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述