zoukankan      html  css  js  c++  java
  • Pixysoft.Framework.Schedular 作业调度 开发实录


    由于在开发healthcheck的时候遇到发送email的问题,决定提前搞一个分布式集中控制的作业调度系统。

    开发周期无法确定,可能很久。

    所谓调度:

    在什么条件下,以什么方式通知对方干什么

    例如

    每天12点发短信通知我起床。

    条件 =  时间,每天12点

    方式 = 发短信

    干什么= 信息发送 

    当数据库崩溃的时候,发送检查报告到服务器。

    这个不是调度,这个已经和业务逻辑绑定了。 

    当检查报告没有通过的时候,发送email通知管理员

    条件 = 时间 = 立刻

    方式 = email

    干什么 = 信息发送

    每天12点,数据库自动备份数据一次

    每天12点,对销售汇总一次、对员工提成统计一次。。。。

    如果要实现这种调度,除了时间条件外,其他的几乎要重写。

    可能使用了反射加载机制。 

    !!典型的符合时间条件、不符合方式、干什么

    当库存小于10的时候,自动建立配货单,并通知管理员 

    同上

    !!典型的不符合时间条件、符合方式或干什么

      

    ---------------

    综上分析,

    如果是时间条件下,以某种方式传递文本信息;则可以形成框架。 

    如果是不符合时间条件,以某种方式传递文本信息;可以用立即执行的方式+具体代码 模拟调度系统。

    = 调度系统配置了一个立即执行的调度

    如果是时间条件下,处理具体的业务;例如数据库备份等 = 调度系统触发了时间,但是实现机制由用户负责。

    = 继承了调度接口 + 注册了触发机制

    不符合时间条件下,处理具体的业务; 库存小于10,添加配货单

    = 管我X屁事!

    --------------------------------------------------------------- 

    开始时间: 2010-02-10

    结束时间:2010-02-21

    用了21天,主要中途玩了几天的开心网餐厅,然后搞了其他垃圾的事情。。。。。真是慢。。 

  • 相关阅读:
    sbt commands
    SBT Assembly
    There is no setter for property named 可能产生的原因!
    JSP页面分页显示数据
    CentOS7配置FTP服务器增强版~(零基础学会FTP配置)
    Windows下将程序打包为安装包(最为简易的方式)
    Linux多线程编程详细解析----条件变量 pthread_cond_t
    在Linux中使用线程
    关于verilog中语句可不可综合
    32位先行进位加法器的实现
  • 原文地址:https://www.cnblogs.com/zc22/p/1666914.html
Copyright © 2011-2022 走看看