预发环境如何测试定时任务 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mumuxi
V2EX    Java

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

  •  
  •   mumuxi 2024-02-20 17:38:41 +08:00 2432 次点击
    这是一个创建于 628 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    你的情况,内网测完直接上正式就行
    xiaopengm
        17
    xiaopengm  
       2024-02-26 20:53:04 +08:00
    加个版本号概念
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     816 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 22:02 PVG 06:02 LAX 14:02 JFK 17:02
    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