郑昀 最后更新于2014/11/11
关键词:
定时任务
、调度、监控报警、Job、crontab、Java
本文档适用人员:研发员工
没有JobCenter时我们要面对的:
电商业务链条很长,业务逻辑也较为复杂,需要成百上千种定时任务。窝窝的大多数定时任务其实调用的是本地或远端 Java/PHP/Python Web Service。如果没有一个统一的调度和报警,在集群环境下,我们会:
不知道哪一个定时任务执行失败或超时,不见得能第一时间知道——直到最终用户投诉反馈过来;
要求每一个定时任务输出统一格式的日志供监控系统解析?
对每一位定时任务维护者提出高要求?这不是我们的解题思路。
不知道哪一个定时任务没配好瞎跑;
比如忘记配成开机自启动;
比如曾经线上环境B与环境A并存导致定时任务互相争抢;
不知道现在线上跑了多少个定时任务,都是干什么的,负责人都是谁;
有些定时任务非常重要,不能单点,但又不能同时起多个 crontab,只能采取 master/slave 模式跑——比如退款处理。
什么是JobCenter?
窝窝的定时任务管理和调度平台,一个实用工具,
它是一个由 任务管理、任务调度、任务监控报警以及宿主任务执行(注意不再是 crontab了) 这四部分组成的,分布式多任务协调系统。
2012年时,我看到暴风影音的马晨开源了一个 CronHub(时间调度系统)项目
(
github