我有一个像这样的结构:
type Notifications struct {
Id int
Start *time.Time
}
notifications := db.GetNotifications()
所以现在我需要在时间与当前时间匹配时发送这些通知。
1 2018-11-07 09:05:00
2 2018-11-07 09:05:00
3 2018-11-07 09:15:00
..
对我来说,最简单的方法是使用自动收报机:
ticker := time.NewTicker(30 * time.Second)
defer ticker.Stop()
for {
<-ticker.C
alerts := []Notification
for _, n := range notifications {
if n.Start == // same year, month, day, hour and minute {
alerts = append(alerts, n)
}
}
sendNotifications(alerts)
// TODO mutate the notifications to avoid duplicatation sending
}
有没有更有效的方法来做到这一点?
匹配时间的最佳方法是什么,我是否必须在我的 if 语句中分别比较 time.Now() 的属性,如年、月、日、小时和分钟?即,如果已达到年、月、日、小时和分钟(忽略秒及以后),则会触发通知
慕盖茨4494581
相关分类