| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package data
- import (
- "github.com/go-kratos/kratos-layout/internal/conf"
- "github.com/go-kratos/kratos-layout/internal/data/models"
- "github.com/go-kratos/kratos/v2/log"
- "github.com/go-redis/redis/v8"
- "github.com/google/wire"
- )
- // ProviderSet is data providers.
- var ProviderSet = wire.NewSet(NewData)
- // Data .
- type Data struct {
- log *log.Helper
- rdb *redis.Client
- *models.Mysql
- }
- // NewData .
- func NewData(c *conf.Data, logger log.Logger) (*Data, error) {
- data := &Data{
- log: log.NewHelper("data/data", logger),
- }
- var err error
- if c.Database != nil {
- data.Mysql, err = models.NewMysql(c.Database.Source, logger)
- if err != nil {
- return nil, err
- }
- data.Mysql.XDB.SetMaxIdleConns(int(c.Database.MaxIdleConns))
- data.Mysql.XDB.SetMaxOpenConns(int(c.Database.MaxOpenConns))
- }
- if c.Redis != nil {
- data.rdb = redis.NewClient(&redis.Options{
- Addr: c.Redis.Addr,
- DB: int(c.Redis.Db),
- DialTimeout: c.Redis.DialTimeout.AsDuration(),
- WriteTimeout: c.Redis.WriteTimeout.AsDuration(),
- ReadTimeout: c.Redis.ReadTimeout.AsDuration(),
- PoolSize: int(c.Redis.PoolSize),
- MinIdleConns: int(c.Redis.MinIdleConns),
- })
- }
- return data, nil
- }
|