我们有两个环境,预发环境和生产环境,这两个环境共用一套 DB ,目前预发环境无法执行定时任务,如果执行的话 和生产会有重复数据,请问大佬们 有什么解决办法? 目前考虑特定企业在预发执行,但是很多定时任务并不是按企业查询的,不知道 xxl-job 的灰度发布是否可以解决问题
1
cccssss 268 天前 1
我们的经验是这类代码测试环境测完直接上线
|
2
xiang0818 268 天前
预发环境为啥要测定时任务
|
3
8355 268 天前
同样的道理,那在分布式环境下你的计划任务是多台机器一起执行吗?
|
4
walkeronway 268 天前
没必要吧,你在测试环境测完定时任务都没有信心上生产吗,还要在预产再测一轮。如果这样的话,你在预产环境测完了不也一样不可信?
而且你预产环境跟生产环境用一套 DB ,你在预产环境测试用途影响到了生产数据,这个风险巨大吧? |
5
walkeronway 268 天前
保险一点就是弄个开关/白名单,上生产了最小范围开白名单看下效果,有问题就关掉,修好上 hotfix 。没问题就全局开放
|
6
devswork 268 天前
预发环境都和生产环境同一套 DB 了,那么两者区别是啥?
我们这就很简单了,就是开发+生产两套环境 |
7
root71370 268 天前
为什么预生产环境要和生产环境公用一套 DB ?
我们是隔离开的,定期同步生产数据库到预生产数据库 |
8
Hurriance 268 天前
在测试环境充分测试之后,如果还没信心的话
有个野路子,写死一个有效日期和执行范围,过期后就不执行,当作测试来观察 |
9
foolishcrab 268 天前
你们对预发环境的定义和用途是什么,同一套 db 的话不就相当于不接外部流量的生产吗?
|
10
laminux29 268 天前 1
A-B 问题,思路就错了。
开发环境、测试环境、生产环境,等等,各自必须独立,不能有交集。 一般是用配置文件 + 域名来进行区分。 |
11
mumuxi OP @foolishcrab 可以用来测试新功能,也就是说两套环境除了代码不一样,其他 DB NG 配置全部一致
|
12
LowBi 268 天前
我现在就是本地一个 DB ,隔一段时间就从线上 DB 同步到本地,再连本地测试
|
13
199808lanlan1111 268 天前
我这边处理方案是灰度逻辑,定时任务相当于一个网关,企业 A ,企业 B 路由到不同环境。但是对于扫表的逻辑就无法进行处理
|
14
199808lanlan1111 268 天前
@laminux29 公司不大一般没资源多套 db ,我待得这个就是一开始是有两套环境,从应用、db 、mq 、redis 啥都是有两套,但是资源不够,后面就改到一套,多环境公用一套 redis 、db 、mq
|
15
laminux29 268 天前 1
|
16
prosgtsr 268 天前
我这公司是内网、预发、正式三套环境
但是预发和正式用的同样的 db ,结果到现在大家纷纷放弃预发环境了。内网测试直接部署正式 你的情况,内网测完直接上正式就行 |
17
xiaopengm 262 天前
加个版本号概念
|