在 Go 中每隔一段时间执行重复的后台任务
在 Java 中,Timer.schedule 方法提供了一种执行周期性后台任务的便捷方法。这就提出了一个问题:Go 中是否有类似的方法?
一个可能的解决方案涉及利用 goroutine 和 time.sleep(),但这可能很笨拙。幸运的是,Go 提供了一个更优雅的解决方案:time.NewTicker。
time.NewTicker 创建了一个连续发送周期性消息的通道,提供了一种简单有效的方法来安排重复任务。要使用 time.NewTicker:
ticker := time.NewTicker(5 * time.Second) quit := make(chan struct{}) go func() { for { select { case <- ticker.C: // Perform the desired task case <- quit: ticker.Stop() return } } }()
要终止负责执行任务的工作人员,只需关闭退出通道即可:
close(quit)
这种方法提供了一种干净、简单的执行方法Go 中定期重复的后台任务。
以上是如何在 Go 中定期执行重复的后台任务?的详细内容。更多信息请关注PHP中文网其他相关文章!