5 Star 12 Fork 3

cristiane/micro-mall-sku

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
vars.go 2.26 KB
一键复制 编辑 原始数据 按行查看 历史
雨化田 提交于 2021-11-27 21:36 +08:00 . 允许mongo.url为空不启用mongo
package startup
import (
"context"
"log"
"gitee.com/cristiane/micro-mall-sku/model/args"
"gitee.com/cristiane/micro-mall-sku/vars"
"gitee.com/kelvins-io/kelvins"
"gitee.com/kelvins-io/kelvins/setup"
"gitee.com/kelvins-io/kelvins/util/queue_helper"
"github.com/qiniu/qmgo"
)
// SetupVars 加载变量
func SetupVars() error {
var err error
// 1 mongodb
err = setupMongodb()
if err != nil {
return err
}
// 2 sku queue
err = setupQueueSkuInventorySearchNotice()
if err != nil {
return err
}
return err
}
func setupQueueSkuInventorySearchNotice() error {
var err error
if vars.SkuInventorySearchNoticeSetting != nil {
vars.SkuInventorySearchNoticeServer, err = setup.NewAMQPQueue(vars.SkuInventorySearchNoticeSetting, nil)
if err != nil {
return err
}
vars.SkuInventorySearchNoticePusher, err = queue_helper.NewPublishService(
vars.SkuInventorySearchNoticeServer, &queue_helper.PushMsgTag{
DeliveryTag: args.SkuInventorySearchNoticeTag,
DeliveryErrTag: args.SkuInventorySearchNoticeTagErr,
RetryCount: vars.SkuInventorySearchNoticeSetting.TaskRetryCount,
RetryTimeout: vars.SkuInventorySearchNoticeSetting.TaskRetryTimeout,
}, kelvins.BusinessLogger)
if err != nil {
return err
}
}
return err
}
func setupMongodb() error {
if vars.MongoDBSetting == nil || vars.MongoDBSetting.Uri == "" {
return nil
}
// 初始化mongodb
ctx := context.Background()
var maxPoolSize = uint64(vars.MongoDBSetting.MaxPoolSize)
var minPoolSize = uint64(vars.MongoDBSetting.MinPoolSize)
mgoCfg := &qmgo.Config{
Uri: vars.MongoDBSetting.Uri,
Database: vars.MongoDBSetting.Database,
MaxPoolSize: &maxPoolSize,
MinPoolSize: &minPoolSize,
Auth: &qmgo.Credential{
AuthMechanism: "",
AuthSource: vars.MongoDBSetting.AuthSource,
Username: vars.MongoDBSetting.Username,
Password: vars.MongoDBSetting.Password,
PasswordSet: false,
},
}
client, err := qmgo.NewClient(ctx, mgoCfg)
if err != nil {
log.Printf("mongodb connection err: %v", err)
return err
}
err = client.Ping(30) // 30s
if err != nil {
log.Printf("mongodb ping timeout err: %v", err)
return err
}
vars.MongoDBDatabase = client.Database(vars.MongoDBSetting.Database)
return nil
}
func StopFunc() error {
return nil
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/cristiane/micro-mall-sku.git
git@gitee.com:cristiane/micro-mall-sku.git
cristiane
micro-mall-sku
micro-mall-sku
193b2c906290

搜索帮助