#研发中间件介绍#定时任务调度与管理JobCenter
本文档适用人员:研发员工
- 不知道哪一个定时任务执行失败或超时,不见得能第一时间知道——直到最终用户投诉反馈过来;
- 要求每一个定时任务输出统一格式的日志供监控系统解析?
- 对每一位定时任务维护者提出高要求?这不是我们的解题思路。
- 不知道哪一个定时任务没配好瞎跑;
- 比如忘记配成开机自启动;
- 比如曾经线上环境B与环境A并存导致定时任务互相争抢;
- 不知道现在线上跑了多少个定时任务,都是干什么的,负责人都是谁;
- 有些定时任务非常重要,不能单点,但又不能同时起多个 crontab,只能采取 master/slave 模式跑——比如退款处理。
|
1 、大量的crontab管理起来好烦人
任务老是没按时执行,各种原因失败,真让人抓狂。
2、多台服务器环境下,管理crontab更是烦上加烦,登录每台机器查看crontab结果不是折磨一贯偷懒的程序员吗?
3、要是能有个自动化管理,可供的GUI界面管理就好了。
|
|
所以暴风影音做一个“真正通用”,“真正解决日常需求”的时间调度系统。
|

图1 jobcenter 在 idcenter 的入口

- 管理直观
- 可以指定定时任务的 Worker 集群,并指定执行策略,如随机选取一台机器执行,如第一台执行;
- 可以指定通知策略:保证执行成功,只通知一次;
- 可以设置超时警告时间;
- 并可以进一步设置警告接收人(短信和邮件),如下图所示:

- 任务失败会发邮件给警告接收人;
- 调度方便
- 集中查看所有定时任务的执行总况,如下图所示:

- 可以在“定时任务调度”界面上,暂停定时任务,或者立即执行定时任务;
- 观察方便
- 按定时任务查看它的上次执行时间、耗时、是否超时、执行结果和通知结果。如下图所示:

- 按定时任务查看它的执行趋势图,能直观地反映每一次执行是否成功、耗时、是否超时,如下图所示:
- 可以用鼠标在图表上拖动放大时间轴;
- 黄色叹号图标代表超时了,红色叉图代表执行失败,红色横线图标代表任务未执行;

总之,它借鉴了 CronHub 的界面设计和菜单,这是一款大幅提升实施和管理效率、方便易用的中间件。
JobCenter 的工作原理
下图是聂兰彬当年绘制的架构示意图,后续虽然结构有所调整,但下图还是能说明问题的:

图3 jobcenter 示意图
它如何调度宿主执行定时任务呢?如下图所示:

图4 jobcenter 任务执行的泳道图
JobCenter 的通知保证机制:
通知保证机制有以下3种:
- 只通知一次
- 保证成功
- 保证成功(任务不在执行中)
特别对 “保证成功(任务不在执行中)” 作以下说明:
当一个任务到了这一轮的通知时间,jobcenter 会去检查这个任务之前的执行,是否还在执行中(如正在执行,客户端未返回)。如果有,则本次执行直接失败,不通知。
窝窝的其他解决方案介绍列表:
#研发解决方案介绍#Recsys-Evaluate(推荐评测)
#数据技术选型#即席查询Shib+Presto,集群任务调度HUE+Oozie
-over-

#研发中间件介绍#定时任务调度与管理JobCenter的更多相关文章
- #研发中间件介绍#异步消息可靠推送Notify
郑昀 基于朱传志的设计文档 最后更新于2014/11/11 关键词:异步消息.订阅者集群.可伸缩.Push模式.Pull模式 本文档适用人员:研发 电商系统为什么需要 NotifyServer? ...
- #研发解决方案介绍#Tracing(鹰眼)
郑昀 最后更新于2014/11/12 关键词:GoogleDapper.分布式跟踪.鹰眼.Tracing.HBase.HDFS. 本文档适用人员:研发 分布式系统为什么需要 Tracing? ...
- #研发解决方案介绍#IdCenter(内部统一认证系统)
郑昀 基于朱传志的设计文档 最后更新于2014/11/13 关键词:LDAP.认证.权限分配.IdCenter. 本文档适用人员:研发 曾经一个IT内部系统配一套帐号体系和授权 线上生产环境里 ...
- #研发解决方案介绍#基于StatsD+Graphite的智能监控解决方案
郑昀 基于李丹和刘奎的文档 创建于2014/12/5 关键词:监控.dashboard.PHP.graphite.statsd.whisper.carbon.grafana.influxdb.Pyth ...
- #研发解决方案介绍#基于ES的搜索+筛选+排序解决方案
郑昀 基于胡耀华和王超的设计文档 最后更新于2014/12/3 关键词:ElasticSearch.Lucene.solr.搜索.facet.高可用.可伸缩.mongodb.SearchHub.商品中 ...
- #研发解决方案介绍#Recsys-Evaluate(推荐评测)
郑昀 基于刘金鑫文档 最后更新于2014/12/1 关键词:recsys.推荐评测.Evaluation of Recommender System.piwik.flume.kafka.storm.r ...
- Java定时任务调度详解
前言 在实际项目开发中,除了Web应用.SOA服务外,还有一类不可缺少的,那就是定时任务调度.定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券 ...
- .Net Core 商城微服务项目系列(十五): 构建定时任务调度和消息队列管理系统
一.系统描述 嗨,好久不见各位老哥,最近有点懒,技术博客写的太少了,因为最近在写小说,写的顺利的话说不定就转行了,哈哈哈哈哈哈哈哈哈. 今天要介绍的是基于.Net Core的定时任务调度和消息队列管理 ...
- quartz 定时任务调度管理器
本项目使用的是spring-quartz 以下配置可以开启多个已知定时任务 <?xml version="1.0" encoding="UTF-8"?&g ...
随机推荐
- java 连接数据库之一个完整的函数
第一个参数要查询的列名第二个参数是连接的url第三个参数是用户名第四个参数密码第五个参数是执行的命令. 注意,url格式是 jdbc:mysql://localhost:3306/wechat jdb ...
- C语言 经典编程100题
一.题目 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? =============================================== ...
- C语言 基础练习40题
一.题目 1.输入2个整数,求两数的平方和并输出. 2. 输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息. 3.函数y=f(x)可表示为: 4.编写一个程序,从4 ...
- myWaterfall - jQuery瀑布流布局插件
myWaterfall - jQuery瀑布流布局插件 Demo http://jsfiddle.net/q3011893/p5k2ogy8/embedded/result,html,css,js/ ...
- SFC中的故障管理
1.SFC中包的格式 网络服务包头,当Obit被设置为1时,表示一个SFC OAM消息 OAM Type:SFC OAM的类型(1.连接认证,2.持续性检验,3.路由跟踪,4.性能度量) SFC OA ...
- 微信公众账号 token 验证失败 解决办法
问题:微信公众账号 开发过程中配置 token 提示 验证失败 如下图: 点击修改配置: 填写相关url与token(自定义):点击提交,会出现 出现这种情况,主要是对相关参数不熟悉,要了解url与 ...
- Sql Server函数全解(二)数学函数
数学函数主要用来处理数值数据,主要的数学函数有:绝对值函数,三角函数(包括正弦函数,余弦函数,正切函数,余切函数).对数函数,随机函数等.在错误产生时,数学函数将返回空值null.本次介绍各种数学 ...
- 使用Executor管理线程
上一篇博客(第一个并发程序:定义任务和驱动任务)中,我们使用Thread对象启动线程,而java.util.concurrent包的Executor执行器提供了更好的管理Thread对象的方法,从而简 ...
- 通知中心 NSNotificationCenter 的简单使用方法
NSNotificationCenter(通知中心) [注意]需再dealloc中移除观察者 获取通知中心单例对象 NSNotificationCenter *center=[NSNotifi ...
- 内置对象session ,cookic,Application,ViewState
一.内置对象 (一)Response - 响应请求对象1.定义:Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应.Response对象只提供了一个数据集合cookie ...