分布式定时任务

最近正好项目中涉及到这一块得内容,关于分布式定时任务,想必大家使用得也是比较多得,今天就只是列举一下,几个常用得分布式定时任务框架,原理性得东西不做过多赘述,大致罗列一下他们得区别
第一种: Quartz

下面展示一些 内联代码片

// 核心关键词
Scheduler, Job ( JobDetail), Trigger, Listener
1, 从Scheduler 开始说起,
获取得方式有三种,这个和spring 获取bean 得方式有点类似,
都是从factory里面获取,和此相关得还有原始jdbc得获取方式,
7步骤里面得前俩步骤,还有非对称加密RSA算法也是类似,所以
就会有一个共通点,但凡是你使用一个插件,获取得固定方式
大同小异,所以我们在使用插件得时候更多去追溯共通性得一些东西
不要仅仅是我会用这个,或者我用过这个,但是原理我不太清楚,
所以避免使用这些,下面介绍三种方式

1) SchedulerFactory sfact=new StdSchedulerFactory();
Scheduler scheduler=sfact.getScheduler();
2)DiredtSchedulerFactory factory=DirectSchedulerFactory.getInstance();
Scheduler scheduler=factory.getScheduler();
3)SchedulerFactoryBean factory = new SchedulerFactoryBean();
Job 很明显处理业务逻辑, jobDetail 可以理解为job得一个具体实现,或者是并发时候使用得一种方式
trigger 触发器,很明显是什么时候触发job执行,
种类得话有simple和cron 这2种,常用得cron这种
Listenter, 监听器顾名思义,监听以上三种,Scheduler,
job,trigger Listener, 有点类似于xxl-Job得日志相关信息
其流程就是 开启得调度线程不断去扫描即将触发
得任务,并且调度执行得一个过程
本来想放项目参考,但是网上一大堆,这里不在赘述
第二种: elastic-Job
首先一点,这个是基于quartz做的一个封装以及拓展,
基于zookeeper实现分布式协调,实现高可用以及分片
所以他得核心 elastic-job-lite, elastic-job-cloud
其流程: lite 组件像zookeeper注册实例,并选举leader,
去执行触发得任务,并记录日志,方便在运维平台查看

第三种 xxl-Job
这个也是基于quartz进行得二次开发,xxl-job 许雪里个人名字缩写
分布式调度框架

2大核心  调度模块,执行模块,其中调度模块就是调度中心,执行模块就是执行器

执行流程
执行模块根据调度中心配置得路径进行注册,并交由调度中心管理,
等到触发任务,执行器执行任务,
执行任务得时候线程会把执行结果保存到内存数据库,
并把日志记录保存到日志文件
再进行回调得时候从内存数据库获取执行结果,并反馈给调度中心
当用户查看日志得时候,调度中心会找到执行器获取日志文件
执行器就把日志文件得日志详情进行返回

当然除此之外,还有别得比如springcloud等定时任务,具体用到会在做一个具体得记录

关注我,不迷路, https://editor.csdn.net/md?not_checkout=1&articleId=126072777
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值