ListTimers 列出本群所有计时器
(grpID int64)
| 141 | |
| 142 | // ListTimers 列出本群所有计时器 |
| 143 | func (c *Clock) ListTimers(grpID int64) []string { |
| 144 | // 数组默认长度为map长度,后面append时,不需要重新申请内存和拷贝,效率很高 |
| 145 | if c.timers != nil { |
| 146 | c.timersmu.RLock() |
| 147 | keys := make([]string, 0, len(*c.timers)) |
| 148 | for _, v := range *c.timers { |
| 149 | if v.GrpID == grpID { |
| 150 | k := v.GetTimerInfo() |
| 151 | start := strings.Index(k, "]") |
| 152 | msg := strings.ReplaceAll(k[start+1:]+"\n", "-1", "每") |
| 153 | msg = strings.ReplaceAll(msg, "月0日0周", "月周天") |
| 154 | msg = strings.ReplaceAll(msg, "月0日", "月") |
| 155 | msg = strings.ReplaceAll(msg, "日0周", "日") |
| 156 | keys = append(keys, msg) |
| 157 | } |
| 158 | } |
| 159 | c.timersmu.RUnlock() |
| 160 | return keys |
| 161 | } |
| 162 | return nil |
| 163 | } |
| 164 | |
| 165 | // GetTimer 获得定时器 |
| 166 | func (c *Clock) GetTimer(key uint32) (t *Timer, ok bool) { |