1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package data
- import (
- "context"
- "fmt"
- "time"
- "go-common/library/log"
- "go-common/library/database/hbase.v2"
- "github.com/tsuna/gohbase/hrpc"
- )
- func (d *Dao) getDataWithBackup(c context.Context, client *hbase.Client, tableNameFunc func(retryCount int) string, maxRetry int, key string, options ...func(hrpc.Call) error) (result *hrpc.Result, err error) {
- if client == nil {
- err = fmt.Errorf("hbase client is nil")
- return
- }
- for i := 0; i < maxRetry; i++ {
- var tableName = tableNameFunc(i)
- if result, err = d.hbase.GetStr(c, tableName, key, options...); err != nil {
- log.Error("hbase GetStr tableName(%s)|key(%v)|error(%v)", tableName, key, err)
- continue
- }
- break
- }
- return
- }
- func getTableName(tablePrefix string, date time.Time) string {
- return tablePrefix + date.Format("20060102")
- }
- func generateTableNameFunc(tablePrefix string, date time.Time, dayDiff int) func(retryCount int) string {
- return func(retryCount int) string {
- var backdate = date.AddDate(0, 0, dayDiff*retryCount)
- return getTableName(tablePrefix, backdate)
- }
- }
|