You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.4 KiB
57 lines
1.4 KiB
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 |
|
}
|
|
|