Browse Source

feat(initutils): 添加异步初始化工具和启动参数结构体

- 实现了异步初始化所需的 WaitGroup 相关方法
- 添加了 Startup 结构体,用于存储启动参数信息
lihf 2 tháng trước cách đây
mục cha
commit
e833900ef8
2 tập tin đã thay đổi với 36 bổ sung0 xóa
  1. 25 0
      initutils/async_init.go
  2. 11 0
      initutils/startup.go

+ 25 - 0
initutils/async_init.go

@@ -0,0 +1,25 @@
+package initutils
+
+import (
+	"sync"
+)
+
+var asyncInitWaitGroup sync.WaitGroup
+
+func AsyncInitAdd()  { asyncInitWaitGroup.Add(1) }
+func AsyncInitDone() { asyncInitWaitGroup.Done() }
+func AsyncInitWait() { asyncInitWaitGroup.Wait() }
+
+// defer initutils.AsyncInitAddDone()()
+func AsyncInitAddDone() func() {
+	asyncInitWaitGroup.Add(1)
+	return func() {
+		asyncInitWaitGroup.Done()
+	}
+}
+
+func AsyncInit(f func()) {
+	asyncInitWaitGroup.Add(1)
+	defer asyncInitWaitGroup.Done()
+	f()
+}

+ 11 - 0
initutils/startup.go

@@ -0,0 +1,11 @@
+package initutils
+
+type Startup struct {
+	Name         string
+	Version      string
+	FlagConf     string
+	Group        string
+	Namespace    string
+	ConfigSource string
+	RegistryType string
+}