Skip to content

Commit

Permalink
feat: add env params to control database execute/close timeout.
Browse files Browse the repository at this point in the history
lovestaryouth committed Jan 15, 2025
1 parent be0e754 commit b3c5348
Showing 4 changed files with 16 additions and 1 deletion.
5 changes: 5 additions & 0 deletions pkg/common/consts/env_param.go
Original file line number Diff line number Diff line change
@@ -65,3 +65,8 @@ const (
HookReportTime = "hookReportTime"
HookReportStatus = "hookReportStatus"
)

const (
DatabaseExecuteTimeout = "FB_DATABASE_EXECUTE_TIMEOUT"
DatabaseCloseTimeout = "FB_DATABASE_CLOSE_TIMEOUT"
)
8 changes: 8 additions & 0 deletions pkg/common/utils/viper_lock.go
Original file line number Diff line number Diff line change
@@ -42,3 +42,11 @@ func GetTimeWithLockViper(key string) time.Time {

return viper.GetTime(key)
}

// GetInt32WithLockViper 带锁获取viper中的int32值
func GetInt32WithLockViper(key string) int32 {
viperMutex.Lock()
defer viperMutex.Unlock()

return viper.GetInt32(key)
}
2 changes: 2 additions & 0 deletions pkg/engine/datasource/prisma.go
Original file line number Diff line number Diff line change
@@ -74,6 +74,8 @@ func buildRuntimeDataSourceConfigurationForPrisma(prismaSchema string, config *w
staticData := &wgpb.DataSourceCustom_Static{Data: &wgpb.ConfigurationVariable{}}
customDatabase := *config.CustomDatabase
customDatabase.PrismaSchema, _ = filepath.Abs(prismaSchema)
customDatabase.ExecuteTimeoutSeconds = utils.GetInt32WithLockViper(consts.DatabaseExecuteTimeout)
customDatabase.CloseTimeoutSeconds = utils.GetInt32WithLockViper(consts.DatabaseCloseTimeout)
configs, fields = copyDatasourceWithRootNodes(config, func(_ *wgpb.TypeField, configItem *wgpb.DataSourceConfiguration) bool {
configItem.CustomDatabase = &customDatabase
configItem.CustomStatic = staticData

0 comments on commit b3c5348

Please sign in to comment.