2022-09-09 18:26:08 +08:00
|
|
|
package application
|
|
|
|
|
|
2023-02-13 21:11:16 +08:00
|
|
|
import (
|
2023-12-27 22:59:20 +08:00
|
|
|
"fmt"
|
2023-02-13 21:11:16 +08:00
|
|
|
"mayfly-go/internal/db/infrastructure/persistence"
|
2024-01-21 22:52:20 +08:00
|
|
|
"mayfly-go/pkg/ioc"
|
2023-12-27 22:59:20 +08:00
|
|
|
"sync"
|
2023-02-13 21:11:16 +08:00
|
|
|
)
|
2022-09-09 18:26:08 +08:00
|
|
|
|
2024-01-22 11:35:28 +08:00
|
|
|
func InitIoc() {
|
2024-01-21 22:52:20 +08:00
|
|
|
persistence.Init()
|
|
|
|
|
|
|
|
|
|
ioc.Register(new(instanceAppImpl), ioc.WithComponentName("DbInstanceApp"))
|
|
|
|
|
ioc.Register(new(dbAppImpl), ioc.WithComponentName("DbApp"))
|
|
|
|
|
ioc.Register(new(dbSqlExecAppImpl), ioc.WithComponentName("DbSqlExecApp"))
|
|
|
|
|
ioc.Register(new(dbSqlAppImpl), ioc.WithComponentName("DbSqlApp"))
|
|
|
|
|
ioc.Register(new(dataSyncAppImpl), ioc.WithComponentName("DbDataSyncTaskApp"))
|
2024-01-23 04:06:08 +00:00
|
|
|
|
|
|
|
|
ioc.Register(newDbScheduler(), ioc.WithComponentName("DbScheduler"))
|
|
|
|
|
ioc.Register(new(DbBackupApp), ioc.WithComponentName("DbBackupApp"))
|
|
|
|
|
ioc.Register(new(DbRestoreApp), ioc.WithComponentName("DbRestoreApp"))
|
|
|
|
|
ioc.Register(newDbBinlogApp(), ioc.WithComponentName("DbBinlogApp"))
|
2024-01-21 22:52:20 +08:00
|
|
|
}
|
|
|
|
|
|
2023-12-27 22:59:20 +08:00
|
|
|
func Init() {
|
|
|
|
|
sync.OnceFunc(func() {
|
2024-01-23 04:06:08 +00:00
|
|
|
if err := GetDbBackupApp().Init(); err != nil {
|
2024-02-06 07:16:56 +00:00
|
|
|
panic(fmt.Sprintf("初始化 DbBackupApp 失败: %v", err))
|
2023-12-27 22:59:20 +08:00
|
|
|
}
|
2024-01-23 04:06:08 +00:00
|
|
|
if err := GetDbRestoreApp().Init(); err != nil {
|
2024-02-06 07:16:56 +00:00
|
|
|
panic(fmt.Sprintf("初始化 DbRestoreApp 失败: %v", err))
|
|
|
|
|
}
|
|
|
|
|
if err := GetDbBinlogApp().Init(); err != nil {
|
|
|
|
|
panic(fmt.Sprintf("初始化 DbBinlogApp 失败: %v", err))
|
2023-12-27 22:59:20 +08:00
|
|
|
}
|
2024-01-21 22:52:20 +08:00
|
|
|
GetDataSyncTaskApp().InitCronJob()
|
2023-12-27 22:59:20 +08:00
|
|
|
})()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func GetDbBackupApp() *DbBackupApp {
|
2024-01-23 04:06:08 +00:00
|
|
|
return ioc.Get[*DbBackupApp]("DbBackupApp")
|
2023-12-27 22:59:20 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func GetDbRestoreApp() *DbRestoreApp {
|
2024-01-23 04:06:08 +00:00
|
|
|
return ioc.Get[*DbRestoreApp]("DbRestoreApp")
|
2023-12-27 22:59:20 +08:00
|
|
|
}
|
|
|
|
|
|
2024-01-05 08:55:34 +08:00
|
|
|
func GetDbBinlogApp() *DbBinlogApp {
|
2024-01-23 04:06:08 +00:00
|
|
|
return ioc.Get[*DbBinlogApp]("DbBinlogApp")
|
2024-01-05 08:55:34 +08:00
|
|
|
}
|
2024-01-05 05:31:32 +00:00
|
|
|
|
|
|
|
|
func GetDataSyncTaskApp() DataSyncTask {
|
2024-01-21 22:52:20 +08:00
|
|
|
return ioc.Get[DataSyncTask]("DbDataSyncTaskApp")
|
2024-01-05 05:31:32 +00:00
|
|
|
}
|