diff --git a/util/envconst/envconst.go b/util/envconst/envconst.go index 8159aae..8c13190 100644 --- a/util/envconst/envconst.go +++ b/util/envconst/envconst.go @@ -2,6 +2,7 @@ package envconst import ( "os" + "strconv" "sync" "time" ) @@ -23,3 +24,19 @@ func Duration(varname string, def time.Duration) time.Duration { cache.Store(varname, d) return d } + +func Int64(varname string, def int64) int64 { + if v, ok := cache.Load(varname); ok { + return v.(int64) + } + e := os.Getenv(varname) + if e == "" { + return def + } + d, err := strconv.ParseInt(e, 10, 64) + if err != nil { + panic(err) + } + cache.Store(varname, d) + return d +}