定时任务监控轮子? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
kkfnui
V2EX    问与答

定时任务监控轮子?

  •  
  •   kkfnui 2017-12-22 15:10:57 +08:00 3441 次点击
    这是一个创建于 2880 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务中有很多数据是定时任务计算出来的,定时任务运行是会有很多异常情况导致任务异常退出

    本想程序中增加异常捕获,在最外层加上 try catch,然后通过 微信或者邮件发出通知告警。 但有些情况监控不了:

    1. 进程被其他人 kill,内存不足被系统强杀
    2. 运行节点断网或者停机(这个其实可以监控节点状态

    task and job

    设想有个定时任务的框架,每个定时程序作为一个 task,每次运行是一个 job。 有个统一的服务可以收集到 task 的运行状态,每个 job 运行的详情。

    这样可以监控:

    1. 如果一个 task 长时间没有 job,则报警
    2. 如果一个 job 运行时间过久 报警

    想到有两种实现方式:

    1. 托管方式,有用过 jenkins,但是感觉太重了,不适合这样的定时任务。现状是有多个人写了脚本,定时执行,并且在不同机器上,对配置要求不一样
    2. 脚本侵入式,可以避免上面需要搭建平台服务,并且可以服用原来的资源分配。缺点是需要修改原来所有的脚本,所以是想该的简单些。类似的暴露三个接口:init(task_info ), run(argv), uninit()

    1. 托管方式的不知道是不是有类似 jenkins,但是轻量点适合定时任务的
    2. 侵入式的,就有些开发工作量了。需要搭建服务,做定时检查报警这些工作了。不知道有没有现成的轮子。
    9 条回复    2017-12-25 13:44:58 +08:00
    kkfnui
        1
    kkfnui  
    OP
       2017-12-22 15:12:38 +08:00
    第二种,可能还想夹带私货。
    在 job 运行完成后,附带上报该 job 的一些附带属性。

    - 更新了多少条 mysql 记录
    - 耗时多少
    mpich
        2
    mpich  
       2017-12-22 15:14:05 +08:00   1
    airflow?
    Livid
        3
    Livid  
    MOD
    PRO
       2017-12-22 15:21:10 +08:00   1
    如果是用 Python 写的话:

    APScheduler + Sentry.io
    kkfnui
        4
    kkfnui  
    OP
       2017-12-22 15:35:03 +08:00
    @mpich 我看看,学习学习
    kkfnui
        5
    kkfnui  
    OP
       2017-12-22 15:44:52 +08:00
    @Livid 语言不仅仅是 python, 我先了解下
    fjkfwz406
        7
    fjkfwz406  
       2017-12-23 13:30:33 +08:00 via iPhone   1
    airflow 满足所有需求
    kkfnui
        8
    kkfnui  
    OP
       2017-12-25 10:43:03 +08:00
    @fjkfwz406
    @mpich

    看了下确实大部分都能够满足,但是对于运行时间过长的任务,希望能够报警(但是不杀死任务),应该怎么做?
    没有看到类似 trigger
    fjkfwz406
        9
    fjkfwz406  
       2017-12-25 13:44:58 +08:00 via iPhone   1
    @kkfnui 看下 airfow 的 SLA
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     935 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 20:42 PVG 04:42 LAX 12:42 JFK 15:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86