🔥A cross-language distributed transaction manager. Support xa, tcc, saga, transactional messages. 跨语言分布式事务管理器
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

54 lines
1.2 KiB

package main
import (
"fmt"
"os"
"github.com/dtm-labs/dtm/bench/svr"
"github.com/dtm-labs/dtm/common"
"github.com/dtm-labs/dtm/dtmcli"
"github.com/dtm-labs/dtm/dtmcli/logger"
"github.com/dtm-labs/dtm/dtmsvr"
"github.com/dtm-labs/dtm/dtmsvr/storage/registry"
"github.com/dtm-labs/dtm/examples"
)
var usage = `bench is a bench test server for dtmf
usage:
redis prepare for redis bench test
db prepare for mysql|postgres bench test
boltdb prepare for boltdb bench test
`
func hintAndExit() {
fmt.Printf(usage)
os.Exit(0)
}
var conf = &common.Config
func main() {
if len(os.Args) <= 1 {
hintAndExit()
}
logger.Infof("starting bench server")
common.MustLoadConfig()
logger.InitLog(conf.LogLevel)
if conf.ExamplesDB.Driver != "" {
dtmcli.SetCurrentDBType(conf.ExamplesDB.Driver)
svr.PrepareBenchDB()
}
registry.WaitStoreUp()
dtmsvr.PopulateDB(false)
if os.Args[1] == "db" {
examples.PopulateDB(false)
} else if os.Args[1] == "redis" || os.Args[1] == "boltdb" {
} else {
hintAndExit()
}
dtmsvr.StartSvr() // 启动dtmsvr的api服务
go dtmsvr.CronExpiredTrans(-1) // 启动dtmsvr的定时过期查询
svr.StartSvr() // 启动bench服务
select {}
}