一、调度
从上个世纪50年代起,调度问题的研究就受到数学、运筹学、工程技术学等领域科学的重视[1],人们主要从数学的角度来研究调度问题,调度问题也同样被定义为”分配一组资源来执行一组任务”,以获得生产任务执行时间或成本的最优[2]。调度在计算机任务的实现可以依赖操作系统的定时任务进行触发(例如Linux系统的Crontab),主要针对单任务机制的触发,调度最基本的需要能够按时或者按照事件进行触发(At-least-once),如果任务不符合预期,还需要在应用端进行重试,最大可能保证任务被按时执行,并且成功执行,同时不能多次执行(Exactly once);但是在业务场景能保证可重复执行、一致性操作情况下对于争取能正常调度执行多次执行也是不可或缺的,比如给商户进行1min前的例行结算,如果结算是按照30min的时间窗口查找未结算的商户,那么就会容忍30min延迟,并且多次被执行也不会给商户多结算,因为在结算付款和重置是否结算标志位可以设计成原子性操作。所以在调度上能够做到按时、正确的执行,在业务方设计为了保证最终一致性也有一些架构上的取舍。 从上个世纪50年代起,调度问题的研究就受到数学