Jelajahi Sumber

send mq node delete update before deleting node

abhishek9686 1 tahun lalu
induk
melakukan
4624fa7dea
2 mengubah file dengan 5 tambahan dan 6 penghapusan
  1. 0 6
      logic/nodes.go
  2. 5 0
      main.go

+ 0 - 6
logic/nodes.go

@@ -476,12 +476,6 @@ func DeleteExpiredNodes(ctx context.Context, peerUpdate chan *models.Node) {
 			}
 			for _, node := range allnodes {
 				if time.Now().After(node.ExpirationDateTime) {
-					if err := DeleteNode(&node, true); err != nil {
-						slog.Error("error deleting expired node", "nodeid", node.ID.String(), "error", err.Error())
-						continue
-					}
-					node.Action = models.NODE_DELETE
-					node.PendingDelete = true
 					peerUpdate <- &node
 					slog.Info("deleting expired node", "nodeid", node.ID.String())
 				}

+ 5 - 0
main.go

@@ -172,9 +172,14 @@ func runMessageQueue(wg *sync.WaitGroup, ctx context.Context) {
 				continue
 			}
 			node := nodeUpdate
+			node.Action = models.NODE_DELETE
+			node.PendingDelete = true
 			if err := mq.NodeUpdate(node); err != nil {
 				logger.Log(0, "failed to send peer update for deleted node: ", node.ID.String(), err.Error())
 			}
+			if err := logic.DeleteNode(node, true); err != nil {
+				slog.Error("error deleting expired node", "nodeid", node.ID.String(), "error", err.Error())
+			}
 			go mq.PublishDeletedNodePeerUpdate(node)
 		}
 	}()