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

预发环境如何测试定时任务

  •  
  •   mumuxi · 59 天前 · 1468 次点击
    这是一个创建于 59 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们有两个环境,预发环境和生产环境,这两个环境共用一套 DB ,目前预发环境无法执行定时任务,如果执行的话 和生产会有重复数据,请问大佬们 有什么解决办法? 目前考虑特定企业在预发执行,但是很多定时任务并不是按企业查询的,不知道 xxl-job 的灰度发布是否可以解决问题

    cccssss
        1
    cccssss  
       59 天前   ❤️ 1
    我们的经验是这类代码测试环境测完直接上线
    xiang0818
        2
    xiang0818  
       59 天前
    预发环境为啥要测定时任务
    8355
        3
    8355  
       59 天前
    同样的道理,那在分布式环境下你的计划任务是多台机器一起执行吗?
    walkeronway
        4
    walkeronway  
       59 天前
    没必要吧,你在测试环境测完定时任务都没有信心上生产吗,还要在预产再测一轮。如果这样的话,你在预产环境测完了不也一样不可信?
    而且你预产环境跟生产环境用一套 DB ,你在预产环境测试用途影响到了生产数据,这个风险巨大吧?
    walkeronway
        5
    walkeronway  
       59 天前
    保险一点就是弄个开关/白名单,上生产了最小范围开白名单看下效果,有问题就关掉,修好上 hotfix 。没问题就全局开放
    devswork
        6
    devswork  
       59 天前
    预发环境都和生产环境同一套 DB 了,那么两者区别是啥?
    我们这就很简单了,就是开发+生产两套环境
    root71370
        7
    root71370  
       59 天前
    为什么预生产环境要和生产环境公用一套 DB ?
    我们是隔离开的,定期同步生产数据库到预生产数据库
    Hurriance
        8
    Hurriance  
       59 天前
    在测试环境充分测试之后,如果还没信心的话
    有个野路子,写死一个有效日期和执行范围,过期后就不执行,当作测试来观察
    foolishcrab
        9
    foolishcrab  
       59 天前
    你们对预发环境的定义和用途是什么,同一套 db 的话不就相当于不接外部流量的生产吗?
    laminux29
        10
    laminux29  
       59 天前   ❤️ 1
    A-B 问题,思路就错了。

    开发环境、测试环境、生产环境,等等,各自必须独立,不能有交集。

    一般是用配置文件 + 域名来进行区分。
    mumuxi
        11
    mumuxi  
    OP
       59 天前
    @foolishcrab 可以用来测试新功能,也就是说两套环境除了代码不一样,其他 DB NG 配置全部一致
    LowBi
        12
    LowBi  
       59 天前
    我现在就是本地一个 DB ,隔一段时间就从线上 DB 同步到本地,再连本地测试
    199808lanlan1111
        13
    199808lanlan1111  
       59 天前
    我这边处理方案是灰度逻辑,定时任务相当于一个网关,企业 A ,企业 B 路由到不同环境。但是对于扫表的逻辑就无法进行处理
    199808lanlan1111
        14
    199808lanlan1111  
       59 天前
    @laminux29 公司不大一般没资源多套 db ,我待得这个就是一开始是有两套环境,从应用、db 、mq 、redis 啥都是有两套,但是资源不够,后面就改到一套,多环境公用一套 redis 、db 、mq
    laminux29
        15
    laminux29  
       59 天前   ❤️ 1
    @199808lanlan1111

    现在各种洋垃圾、小主机,很便宜,性能低一点,慢一点,但隔离开,会很安全。建议向公司提一下,搞几套这种物理设备,又花不了多少钱。
    prosgtsr
        16
    prosgtsr  
       59 天前
    我这公司是内网、预发、正式三套环境
    但是预发和正式用的同样的 db ,结果到现在大家纷纷放弃预发环境了。内网测试直接部署正式

    你的情况,内网测完直接上正式就行
    xiaopengm
        17
    xiaopengm  
       53 天前
    加个版本号概念
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2980 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 08:24 · PVG 16:24 · LAX 01:24 · JFK 04:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.