bilibili-backup/app/interface/main/captcha/dao/dao.go

49 lines
987 B
Go
Raw Normal View History

2019-04-22 10:59:20 +08:00
package dao
import (
"context"
"time"
"go-common/app/interface/main/captcha/conf"
"go-common/library/cache/memcache"
)
// Dao captcha service Dao.
type Dao struct {
conf *conf.Config
memcache *memcache.Pool
mcExpire int32
}
// New new a captcha dao.
func New(c *conf.Config) (d *Dao) {
d = &Dao{
conf: c,
memcache: memcache.NewPool(c.Memcache.Config),
mcExpire: int32(time.Duration(c.Memcache.Expire) / time.Second),
}
return d
}
// Ping captcha service health check, connection is ok.
func (d *Dao) Ping(c context.Context) (err error) {
// return d.pingRedis(c)
return d.pingMemcache(c)
}
// pingMemcache check Memcache health.
func (d *Dao) pingMemcache(c context.Context) (err error) {
conn := d.memcache.Get(c)
item := memcache.Item{Key: "ping", Value: []byte{1}, Expiration: d.mcExpire}
err = conn.Set(&item)
conn.Close()
return
}
// Close close captcha all connection.
func (d *Dao) Close() {
if d.memcache != nil {
d.memcache.Close()
}
}