go-common/app/job/main/reply/conf/conf.go

159 lines
2.7 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package conf
import (
"flag"
"go-common/library/database/elastic"
"go-common/library/cache/memcache"
"go-common/library/cache/redis"
"go-common/library/conf"
"go-common/library/database/sql"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/rpc"
"go-common/library/net/rpc/warden"
"go-common/library/net/trace"
"go-common/library/queue/databus"
"go-common/library/time"
"github.com/BurntSushi/toml"
)
var (
// ConfPath config path.
ConfPath string
// Conf config.
Conf *Config
)
// Config config.
type Config struct {
XLog *log.Config
Tracer *trace.Config
// HTTP
HTTPClient *bm.ClientConfig
DrawyooHTTPClient *bm.ClientConfig
// databus
Databus *Databus
// rpc
RPCClient2 *RPCClient2
// bm
BM *bm.ServerConfig
// mysql
MySQL *MySQL
// redis
Redis *Redis
// mc
Memcache *Memcache
// Host
Host *Host
Weight *Weight
Job *Job
StatTypes map[string]int8
Es *elastic.Config
AccountClient *warden.ClientConfig
}
// Job job.
type Job struct {
Proc int
SearchNum int
SearchFlush time.Duration
MessageMids []int64
BatchNumber int
}
// Weight weight.
type Weight struct {
Like int
Hate int
}
// Host represents host info.
type Host struct {
Activity string
Message string
DrawYoo string
Search string
BlackRoom string
LiveVC string
LiveAct string
API string
Bangumi string
}
// MySQL mysql.
type MySQL struct {
Reply *sql.Config
}
// Redis redis.
type Redis struct {
*redis.Config
IndexExpire time.Duration
ReportExpire time.Duration
UserCntExpire time.Duration
StatCacheExpire time.Duration
UserActExpire time.Duration
NotifyExpire time.Duration
}
// Memcache mc.
type Memcache struct {
*memcache.Config
Expire time.Duration
TopExpire time.Duration
}
// RPCClient2 rpc client.
type RPCClient2 struct {
Account *rpc.ClientConfig
Archive *rpc.ClientConfig
Article *rpc.ClientConfig
Assist *rpc.ClientConfig
}
// Databus databus.
type Databus struct {
Event *databus.Config
Stats *databus.Config
Consumer *databus.Config
Like *databus.Config
}
// Stats stats.
type Stats struct {
*databus.Config
Type int8
Field string
}
func init() {
flag.StringVar(&ConfPath, "conf", "", "config path")
}
// Init init conf
func Init() (err error) {
if ConfPath == "" {
return configCenter()
}
_, err = toml.DecodeFile(ConfPath, &Conf)
return
}
func configCenter() (err error) {
var (
ok bool
value string
client *conf.Client
)
if client, err = conf.New(); err != nil {
return
}
if value, ok = client.Toml2(); !ok {
panic(err)
}
_, err = toml.Decode(value, &Conf)
return
}