Golang Demo

Dec 14, 2021·
1ch0
· 1 min read

Golang Demo

for 循环轮询


ticker := time.NewTicker(shutdownPollInterval) // 设置轮询时间
  defer ticker.Stop()
  for {
        // 真正的操作
    if srv.closeIdleConns() && srv.numListeners() == 0 {
      return lnerr
    }
    select {
    case <-ctx.Done(): // 如果ctx有设置超时,有可能触发超时结束
      return ctx.Err()
    case <-ticker.C:  // 如果没有结束,最长等待时间,进行轮询
    }
  }