使用读写锁来保证数据安全

本文介绍了一个名为RLMap的结构,它利用Go的sync.RWMutex实现读写锁来保证数据的安全。RLMap包含一个字符串到时间的映射,并提供了Set、Get和Delete方法来操作数据。Heartbeat函数接收请求并根据ID更新状态,当状态改变时,通过 Dingding 和 Email 发送通知。SeriousError 函数用于记录错误信息并发送通知。
摘要由CSDN通过智能技术生成






package initialization


import (


   "time"
   "github.com/gin-gonic/gin"
   "monitor/server/dingding"
   "monitor/server/email"
   "sync"
)


type  RLMap struct{
   Data map[string]time.Time
   sync.RWMutex
}


func (s *RLMap) Set(k string, v time.Time){
   s.Lock()
   s.Data[k] = v
   s.Unlock()
}
func (s *RLMap) Get(k string)(v time.Time, ok bool){
   s.RLock()
   defer s.RUnlock()
   v,ok = s.Data[k]
   return v, ok
}
func (s *RLMap)del(k string)  {
   s.Lock()
   delete(s.Data,k)
   s.Unlock()
}


var    Listenmap = new(RLMap)
var Problemlist = new(RLMap)


//func random() (res string){
// str := "0123456789"
// bytes :=

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值