任务调度是指基于给定的时间点,给定的时间间隔或者给定执行次数自动的执行任务。任务调度涉及到多线程并发、运行时间规则定制及解析、线程池的维护等诸多方面的工做。多线程
总体来看分布式任务调度,三个关键词:分布式、任务调度、配置中心。并发
分布式:平台是分布式部署的,各个节点之间能够无状态和无限的水平扩展。分布式
任务调度:涉及到任务状态管理、任务调度请求的发送与接收、具体任务的分配、任务的具体执行;这里又会遇到要处理哪些任务、任务要分配到哪些机器上处理、任务分发的时候判断哪些机器能够用等问题,因此又须要一个能够感知整个集群运行状态的配置中心。spa
配置中心:能够感知整个集群的状态、任务信息的注册。线程
整个调度系统简单理解就是:Scheduler(任务调度器)将Job/JobDetail(如何作)和Trigger(什么时间作与不作)打包成一个调度item进行调度,对过程当中的重要事件,开放Listener钩子给业务用于实现事件处理,整个调度能够采用在内存里面(RAMJobStore)仍是持久化(JDBCJobStore)运做。设计