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