应用数据清理
应用数据主要包含:应用信息、应用分组、应用角色、工作表信息、工作表数据等。为了保证数据安全,系统中重要数据的删除操作均为逻辑删除。但随着已删除数据的逐渐增加,除了占用磁盘存储空间,也可能会对数据库性能有一定影响。所以我们提供了应用数据清理服务,根据设定的规则,定时的对已删除状态的数据进行物理删除。
-
下载镜像(离线包下载)
docker pull registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-dataclean-app:1.0.0
-
Docker Swarm 初始化 (已初始化可跳过此步)
docker swarm init
-
任意目录下创建
dataclean.yaml
文件,内容如下:version: '3'
services:
app:
image: registry.cn-hangzhou.aliyuncs.com/mdpublic/mingdaoyun-dataclean-app:1.0.0
volumes:
- ./appsettings.json:/app/Config/appsettings.json -
在
dataclean.yaml
文件所在目录创建appsettings.json
配置文件,内容如下:{
"WorksheetConnStr": "mongodb://127.0.0.1:27017/mdworksheet",
"MD_WSService1": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSService2": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSService3": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSService4": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSService5": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSService6": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSService7": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSService8": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSService9": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSService10": "mongodb://127.0.0.1:27017/mdwsrows",
"MD_WSLogService1": "mongodb://127.0.0.1:27017/mdworksheetlog",
"ApkConnStr": "mongodb://127.0.0.1:27017/mdapps",
"AppRoleConnStr": "mongodb://127.0.0.1:27017/mdapproles",
"MD.Worksheet.DbName": "mdworksheet",
"MD.WorksheetRow.DbName": "mdwsrows",
"DeleteDay": 60,
"DeleteRowByNomal": 0,
"DelateRowDay": 60,
"DelateRowTotal": 10000,
"Corn": "0 0 2 * * ? "
}配置说明:
mongodb://127.0.0.1:27017
需要替换成实际的 MongoDB 连接地址DeleteDay
删除多少天前的数据DeleteRowByNomal
工作表状态正常时,是否清理是已删除状态的行记录(0:不清理,1:清理)DelateRowDay
DeleteRowByNomal=1 时,删除多少天前的行记录数据,DeleteRowByNomal=0 时此配置无效DelateRowTotal
DeleteRowByNomal=1 时,工作表行记录总数大于多少才删除,DeleteRowByNomal=0 时此配置无效Corn
定时任务执行 corn 表达式,可参考:https://51tools.info/cron/ ,如:0 0 2 * * ?
的含义是每天2点执行
-
启动数据清理服务,
dataclean.yaml
所在目录下执行docker stack deploy -c dataclean.yaml dataclean
可通过
docker logs $(docker ps | grep dataclean | awk '{print $1}')
查看定时任务执行日志。如果需要删除服务,可执行
docker stack rm dataclean
。