java-任务
2023-02-25 11:46:10 0 举报
AI智能生成
整理任务这块,罗列常用的定时任务处理方法及常用的分布式任务框架
作者其他创作
大纲/内容
定时任务
Timer
多线程并行处理定时任务时,Timer运行多个TimeTask时,只要其中之一没有捕获抛出的异常,其它任务便会自动终止运行,使用ScheduledExecutorService则没有这个问题
ScheduledExecutorService
springTask: @EnableScheduling
@Shcedule
@Scheduled(fixedDelay = 3 * 1000 , initialDelay = 30 * 1000) 支持corn表达式
动态修改定时任务的执行时间
@Async
分布式定时任务
quartz
Elastic-Job
xxl-job
官网地址: https://www.xuxueli.com/xxl-job/
核心:
调度中心(HA):
概念:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台
模块:xxl-job-admin
执行器
概念:负责接收“调度中心”的调度并执行;可直接部署执行器,也可以将执行器集成到现有业务项目中。
模块:用户需根据实际需求实现,参考xxl-job-executor-sample-springboot (springboot版本)
任务
概念:任务定义信息,例如名称、调度时间等
任务实例
概念:任务运行时信息
scheduleX2.0
付费,阿里产品
power-job
产品手册:https://www.yuque.com/powerjob/guidence
核心
调度中心 powerjob-server
执行器 powerjob-worker
处理器 processor 不同类型任务(shell、sql、httpClient)处理器
核心概念
分组:业务分组与隔离 类似租户
任务(Job):描述了需要被 PowerJob 调度的任务信息,包括任务名称、调度时间、处理器信息等。
任务实例( JobInstance,简称 Instance):任务(Job)被调度执行后会生成任务实例(Instance),任务实例记录了任务的运行时信息(任务与任务实例的关系类似于类与对象的关系)。
作业(Task):任务实例的执行单元,一个 JobInstance 存在至少一个 Task,具体规则如下:
单机任务(STANDALONE):一个 JobInstance 对应一个 Task
广播任务(BROADCAST):一个 JobInstance 对应 N 个 Task,N为集群机器数量,即每一台机器都会生成一个 Task
Map/MapReduce任务:一个 JobInstance 对应若干个 Task,由开发者手动 map 产生
工作流(Workflow):由 DAG(有向无环图)描述的一组任务(Job),用于任务编排。
工作流实例(WorkflowInstance):工作流被调度执行后会生成工作流实例,记录了工作流的运行时信息。
dolphinscheduler
官网地址:https://dolphinscheduler.apache.org/zh-cn/
以上分布式框架对比
0 条评论
下一页