| 1234567891011121314151617181920212223242526272829303132333435363738 |
- // Copyright 2024 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- package setting
-
- import (
- "code.gitea.io/gitea/modules/log"
- "code.gitea.io/gitea/modules/nosql"
- )
-
- // GlobalLock represents configuration of global lock
- var GlobalLock = struct {
- ServiceType string
- ServiceConnStr string
- }{
- ServiceType: "memory",
- }
-
- func loadGlobalLockFrom(rootCfg ConfigProvider) {
- sec := rootCfg.Section("global_lock")
- GlobalLock.ServiceType = sec.Key("SERVICE_TYPE").MustString("memory")
- switch GlobalLock.ServiceType {
- case "memory":
- case "redis":
- connStr := sec.Key("SERVICE_CONN_STR").String()
- if connStr == "" {
- log.Fatal("SERVICE_CONN_STR is empty for redis")
- }
- u := nosql.ToRedisURI(connStr)
- if u == nil {
- log.Fatal("SERVICE_CONN_STR %s is not a valid redis connection string", connStr)
- }
- GlobalLock.ServiceConnStr = connStr
- default:
- log.Fatal("Unknown sync lock service type: %s", GlobalLock.ServiceType)
- }
- }
|