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

275 天前
 mumuxi

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

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

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

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

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

你的情况,内网测完直接上正式就行
xiaopengm
269 天前
加个版本号概念

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1016945

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX