V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Paual
V2EX  ›  程序员

定时脚本计算数据,数据今天动态变化,第二天不再变化,防止定时脚本漏计算昨天的数据,大家平时采取的是什么方案呢

  •  
  •   Paual ·
    zhangpengfeiup · 2019-06-13 10:52:54 +08:00 · 1333 次点击
    这是一个创建于 1989 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题描述: 现在我们需要定时脚本去计算数据,将计算后的数据写入到数据库中,这些数据是以天单位的,我们用 order_id 和 date 来表示,也就是 order_id 在 2019-06-12 这一天的数据,我们去 5 分钟进行计算,因为它在今天的数据动态变化的,也就是今天的数据如果变化我们就会更新数据库的数据,过了今天有一部分数据就不再进行变化了,所以我们使用 crontab 定时脚本去获取,同时这些计算好的数据我们后面需要使用,所以我们想要将这部分到第二天就不变化数据放入到 Redis 中去。我现在遇到的问题是,防止定时脚本会漏掉计算今天的数据,我想的是在第二天的时候重新计算一遍数据,将数据放入到 Redis 中去。

    我现在想到的解决方法是: 通过计算时间,判断如果是到了第二天,如原时间是 2019-06-12 这一天,现在到了 2019-06-13 这一天,脚本就重新计算一下,当然为了只重新计算一次,我这里会加一个标志位进行,判断,这个标志位加到 Redis 当中。以后读取这些不变化的数据都到 Redis 中进行读取。

    不知道这个问题我描述清楚了么,如果各位有遇到这种类似的问题或者有好的解决方案的话,欢迎分享一下,谢谢了

    2 条回复    2019-06-13 13:04:47 +08:00
    yangg
        1
    yangg  
       2019-06-13 11:05:07 +08:00
    {hour: [0, 7, 10], minute: 13}

    我的方案,这是一个每天需要执行的任务,但是在 0,7,10 都会尝试执行
    每次执行后会写入执行到的天的进度进 redis,然后下次判断是否真正的需要执行,7,10 一般都是空跑
    omph
        2
    omph  
       2019-06-13 13:04:47 +08:00
    一图胜千言
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 22:29 · PVG 06:29 · LAX 14:29 · JFK 17:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.