fix anwser token and database issus
This commit is contained in:
+8
-8
@@ -42,21 +42,15 @@ func Init(typ, dsn string) (*gorm.DB, error) {
|
||||
return nil, errors.Wrap(err, "connect to database")
|
||||
}
|
||||
|
||||
// 配置连接池
|
||||
sqlDB, err := db.DB()
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "get sql.DB from gorm")
|
||||
}
|
||||
|
||||
// 1C1G 低配环境:调低连接池,避免每个 DB 连接占用过多内存。
|
||||
// 提问箱是低并发场景,10 个打开连接绰绰有余。
|
||||
// 最大打开连接数
|
||||
// 1C1G 低配环境:调低连接池避免单连接占用过多内存。提问箱低并发,10 个打开连接绰绰有余。
|
||||
sqlDB.SetMaxOpenConns(10)
|
||||
// 最大空闲连接数
|
||||
sqlDB.SetMaxIdleConns(4)
|
||||
// 连接最大存活时间(避免长连接被数据库服务端断开)
|
||||
sqlDB.SetConnMaxLifetime(5 * time.Minute)
|
||||
// 空闲连接最大存活时间
|
||||
sqlDB.SetConnMaxLifetime(5 * time.Minute) // 避免长连接被数据库服务端断开
|
||||
sqlDB.SetConnMaxIdleTime(3 * time.Minute)
|
||||
|
||||
// 仅在明确开启迁移清理开关时处理 users 表历史重复值,避免服务启动时静默改写账号数据。
|
||||
@@ -89,6 +83,12 @@ func Init(typ, dsn string) (*gorm.DB, error) {
|
||||
logrus.WithError(err).Warn("私聊收集上限历史数据清理时异常(可在功能管理页保存一次私聊设置)")
|
||||
}
|
||||
|
||||
// 防骚扰设置归一:历史账号 harassment_setting 为空串(建表时无默认值),与 none 语义等价
|
||||
// 但取值不同,会导致按 == none 判断时漏判。幂等,失败仅告警。
|
||||
if err := normalizeHarassmentSetting(db); err != nil {
|
||||
logrus.WithError(err).Warn("防骚扰设置历史数据归一时异常(可在防骚扰设置页保存一次)")
|
||||
}
|
||||
|
||||
// 启动期补充高频查询复合索引(幂等,适合既有库)。
|
||||
// 仅 PostgreSQL 需要:这些索引针对服务端真实查询模式(按归属用户+私密+时间、
|
||||
// 按 asker、按展示/投票状态+可见性+时间、按会话/发送者+时间)。
|
||||
|
||||
Reference in New Issue
Block a user