58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package dao
|
|
|
|
import (
|
|
"context"
|
|
"strconv"
|
|
"time"
|
|
|
|
"go-common/library/log"
|
|
)
|
|
|
|
// PubBigData pub msg into databus.
|
|
func (d *Dao) PubBigData(c context.Context, aid int64, msg interface{}) (err error) {
|
|
key := strconv.FormatInt(aid, 10)
|
|
if err = d.dbBigData.Send(c, key, msg); err != nil {
|
|
log.Error("dbBigData.Pub(%s, %v) error (%v)", key, msg, err)
|
|
PromError("dbus:PubBigData")
|
|
}
|
|
return
|
|
}
|
|
|
|
// PubCoinJob pub job msg into databus.
|
|
func (d *Dao) PubCoinJob(c context.Context, aid int64, msg interface{}) (err error) {
|
|
key := strconv.FormatInt(aid, 10)
|
|
for i := 0; i < 3; i++ {
|
|
if err = d.dbCoinJob.Send(c, key, msg); err != nil {
|
|
log.Error("d.dbCoinJob.Pub(%s, %v) error (%v) times: %v", key, msg, err, i+1)
|
|
PromError("dbus:PubCoinJob")
|
|
time.Sleep(time.Millisecond * 50)
|
|
continue
|
|
}
|
|
break
|
|
}
|
|
return
|
|
}
|
|
|
|
// PubStat pub stat msg into databus.
|
|
func (d *Dao) PubStat(c context.Context, aid, tp, count int64) (err error) {
|
|
var s = &struct {
|
|
Type string `json:"type"`
|
|
ID int64 `json:"id"`
|
|
Count int64 `json:"count"`
|
|
Timestamp int64 `json:"timestamp"`
|
|
}{
|
|
ID: aid,
|
|
Count: count,
|
|
Timestamp: time.Now().Unix(),
|
|
}
|
|
// double write new databus.
|
|
if b, ok := d.Businesses[tp]; ok {
|
|
s.Type = b.Name
|
|
if err = d.stat.Send(c, strconv.FormatInt(aid, 10), s); err != nil {
|
|
log.Error("d.stat.Pub(%+v) error(%v)", s, err)
|
|
PromError("dbus:stat")
|
|
}
|
|
}
|
|
return
|
|
}
|