Commit 85436afa authored by vicotor's avatar vicotor

fix bug

parent 8d31f7b8
......@@ -190,7 +190,7 @@ func (wm *WorkerManager) manageWorker(worker *Worker) error {
deviceUsageTicker := time.NewTicker(initialInterval)
defer deviceUsageTicker.Stop()
defer wm.InActiveWorker(worker)
defer wm.InActiveWorker(worker.addr)
for {
var msg = new(omanager.ManagerMessage)
......@@ -218,7 +218,7 @@ func (wm *WorkerManager) manageWorker(worker *Worker) error {
deviceUsageTicker.Reset(time.Second * time.Duration(tickerConf.DeviceUsageTicker))
}
if time.Now().Unix()-wm.GetHeartBeat(worker.uuid) > int64(workerCheckDuration.Seconds()) {
wm.InActiveWorker(worker)
wm.InActiveWorker(worker.addr)
// todo: remove worker
return ErrHeartBeatExpired
}
......@@ -452,15 +452,20 @@ func (wm *WorkerManager) handleWorkerMsg(worker *Worker) {
worker.publicKey = msg.DeviceInfo.MinerPubkey
worker.deviceInfo = msg.DeviceInfo.Devices
worker.benefitAddr = msg.DeviceInfo.BenefitAddress
var addr = ""
if pubkey, err := utils.HexToPubkey(worker.publicKey); err != nil {
log.WithFields(log.Fields{
"worker": worker.uuid,
"error": err,
}).Error("parse pubkey failed")
} else {
worker.addr = utils.PubkeyToAddress(pubkey)
addr = utils.PubkeyToAddress(pubkey)
}
if addr == worker.addr {
// addr is not change.
continue
}
worker.addr = addr
if worker.addr != "" {
infoData, err := json.Marshal(msg.DeviceInfo.Devices)
if err != nil {
......@@ -475,6 +480,7 @@ func (wm *WorkerManager) handleWorkerMsg(worker *Worker) {
}
worker.deviceInfoHash = infoHash[:]
}
wm.InActiveWorker(addr)
wm.AddWorkerFirst(worker)
wm.SetWorkerAddr(worker, worker.addr)
}
......
......@@ -49,6 +49,6 @@ func (wm *WorkerManager) ActiveWorker(worker *Worker) {
wm.rdb.SAdd(context.Background(), config.WORKER_STATUS_PREFIX+worker.addr, config.GetConfig().LocalEndpoint())
}
func (wm *WorkerManager) InActiveWorker(worker *Worker) {
wm.rdb.SRem(context.Background(), config.WORKER_STATUS_PREFIX+worker.addr, config.GetConfig().LocalEndpoint())
func (wm *WorkerManager) InActiveWorker(addr string) {
wm.rdb.SRem(context.Background(), config.WORKER_STATUS_PREFIX+addr, config.GetConfig().LocalEndpoint())
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment