12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package init
- import (
- util "app.yhyue.com/moapp/jybase/common"
- "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXCore/entity"
- "bp.jydev.jianyu360.cn/BaseService/jyMicroservices/jyBXCore/rpc/internal/config"
- "context"
- "flag"
- "fmt"
- "regexp"
- "time"
- "app.yhyue.com/moapp/jypkg/middleground"
- _ "github.com/go-sql-driver/mysql"
- "github.com/zeromicro/go-zero/core/conf"
- )
- var (
- configFile = flag.String("cf", "etc/bxcore.yaml", "the config file")
- C config.Config
- dbFile = flag.String("df", "etc/db.yaml", "the db file")
- DB config.Db
- logFile = flag.String("lf", "etc/logs.yaml", "the logs file")
- logc entity.Logc
- propertyFile = flag.String("pf", "etc/property.yaml", "the logs file")
- Property map[string][]string
- SearchLimitKey = "jy_limitSearchText_new" // 全文或附件搜索限制
- SearchLimitKeyNoLogin = "jy_limitSearchText_noLogin" //未登录
- Middleground *middleground.Middleground
- Search_Thread chan bool
- ReqLimitInit *ReqLimit
- )
- type ReqLimit struct {
- DoPool chan struct{}
- WaitPool chan struct{}
- }
- // -2 等待池已满
- // -1 超时
- // 1:可以执行查询
- func (r *ReqLimit) Limit(ctx context.Context) int {
- ctx, cancel := context.WithTimeout(ctx, 3*time.Second)
- defer cancel()
- select {
- case <-r.WaitPool:
- defer func() {
- r.WaitPool <- struct{}{}
- }()
- select {
- case <-r.DoPool:
- return 1
- case <-ctx.Done(): //超时
- return -1
- }
- default:
- return -2
- }
- }
- func (r *ReqLimit) Release() {
- r.DoPool <- struct{}{}
- }
- func init() {
- //基本配置
- conf.MustLoad(*configFile, &C)
- util.ReadConfig("etc/property.json", &Property)
- //数据库配置
- conf.MustLoad(*dbFile, &DB)
- //初始mongodb
- MongoDBInit(&DB.Mongo)
- //初始化msyql
- MysqlInit(&DB.Mysql)
- //初始redis
- RedisInit(&DB.Redis)
- //初始es
- EsInit(&DB.Es)
- NoLoginEsInit(&DB.EsNoLogin)
- EsFreeInit(&DB.EsFree)
- Search_Thread = make(chan bool, C.SearchConcurrency)
- NoLoginPoolInit(C.NoLoginSearch.Switch, C.NoLoginSearch.ExecutionNum, C.NoLoginSearch.Wait)
- //初始化标签
- LabelInit()
- AreaInit()
- //
- SearchLimitKey = fmt.Sprintf(C.LimitSearchText.LimitKey, "jy_limitSearchText")
- //初始化中台相关
- Middleground = middleground.NewMiddleground(C.Middleground.Etcd.Hosts).
- RegUserCenter(C.Middleground.UserCenterKey).
- RegPowerCheckCenter(C.Middleground.PowerCheckCenterKey).
- RegResourceCenter(C.Middleground.ResourceCenterKey)
- //正则 winner
- if C.SearchWinner.RegWinner != "" {
- entity.RegWinner = regexp.MustCompile(C.SearchWinner.RegWinner)
- }
- }
|