分布式定时任务 | 青训营笔记

59 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天

windows任务计划程序

此电脑 管理 (捕捉任务,制作脚本)

单机定时任务-Ticker

func main () {
	ticker := time.NewTicker(5 * time.Minute)
	for{
		select {
		case <- ticker.C:
			SvncLocalCache()
		}
	}
} 
//跨平台 仅单机可用
//go

单机定时任务-Timer

public static void main (String[] args) throws ParseException{
    Timer timer = new Timer();
    timer.schedule(new TimerTask(){
        @Override
        public void run(){
            SyncLocalCache();
        }
    }, 5000, 5 * 60 * 1000);
}
//JAVA

单机定时任务-ScheduledExecutorService

private static ScheduledExecutorService scheduler;

    public static void main(String[] args) throws Exception{
        scheduler = Executors.newScheduledThresdPool(5);

        scheduler.scheduleAtFixedRate(((
                        new Runnable() {
                            @Override
                            public void run(){
                                DoSomething();
                            }
                        })),
                    0, 300,
                    TimeUnit.SECONDS);
    }
    
//每隔五分钟定时执行多个任务
//JAVA
//拥有线程池功能
//仅单机可用

任务调度-Quartz

分布式定时任务

  • 平台化管理
  • 分布式部署
  • 支持海量数据

分布式定时任务(可参考win自带设置)

  • 定时任务
  • 延时任务
  • 周期任务

特点

  1. 自动化
  2. 平台化
  3. 分布式
  4. 伸缩性
  5. 可高用

执行任务

  1. 单机任务:计算量小
  2. 广播任务
  3. map任务:核心
  4. mapreduce任务
  • 业内流行框架

    Xxl-jobSchedulerXTCTElastic-jobSaturn
    来源公司美团点评阿里巴巴腾讯当当网唯品会
    是否开源
    任务编排子任务依赖支持支持不支持不支持
    任务分片支持支持支持支持支持
    高可用支持支持支持支持支持
    故障转移支持支持支持支持支持
    可视化运维支持支持支持支持支持
  • 美团点评Xxl-job

  • 阿里巴巴SchedulerX

  • 腾讯TCT

核心架构

  • 触发器:Trigger,解析任务,生成触发事件
  • 调度器:Scheduler,分配任务,管理任务生命周期
  • 执行器:Executor,获取执行任务单元,执行任务逻辑
  • 控制台:Admin,提供任务管理和干预的功能2q

image.png

  • 知识面扩充

    • 分布式定时任务
    • 单机定时任务
    • 延时消息
    • 离线计算引擎Hive
    • 实时计算引擎Flink