https://www.cnblogs.com/zuoxiaolong/p/niubi-job-3.html
服务发现:Zookeeper vs etcd vs Consul
目标:分布式定时任务落地
时间:年内
解决问题:异步任务
问题1 。。获取网络ip时写死了10.99 注意修改
分布式定时任务
简介:在分布式的环境中,在某个特定时间或特定条件下执行某些简单或是复杂的任务。
特性:
1. 要支持单位时间内成百上千的任务并发执行。
2.要支持任务结果的同步或是异步响应。
3.支持基于应用维度的任务划分
4.支持单任务的多分片执行
客户端流程
0.客户端参数初始化
1.zk初始化 创建客户端路径并注册客户端,拉取服务端配置并监控变化
2.http初始化 根据服务配置获取一个调度服务地址,并设置请求头
3.集群job并发执行器初始化
4.job任务执行初始化 ,并执行本地有的job任务
5。注册本地job任务到本地线程安全的job及zk中。并放入到job任务执行器中。
6. 并发容器执行job,
6.1 .根据 instance 拉取调集群中的job配置信息
6.2 构建job的上下文
6.3 开始执行job前的执行函数
6.4.判断是简单job和脚本job
6.5 结束执行job后的执行函数
6.6 返回结果
调用集群服务
1.服务初始化: 1.服务注册zookeeper ()serverRegister serverCluster 的配置
- jobpool 初始始job任务.拉取job信息到本地
App —->>Job—>Jobconfig
1.job_schedule 在redis解绑旧的jobid_server ,绑定新的jobid_server .,获取新的job信息 ,查看job的cronexprss是否合法 ,,在本服务器创建QuartzJob ,新建本地缓存,并在zk 中创建zkjob任务,