写一个程序, 5s, 10s后能定时执行一个任务,同时能不停的处理来的消息。
代码语言:javascript复制package main
import (
"fmt"
"time"
)
func main() {
input := make(chan interface{})
//producer - produce the messages
go func() {
for i := 0; i < 5; i {
input <- i
}
input <- "hello, world"
}()
t1 := time.NewTimer(time.Second * 5)
t2 := time.NewTimer(time.Second * 10)
for {
select {
//consumer - consume the messages
case msg := <-input:
fmt.Println(msg)
case <-t1.C:
println("5s timer")
t1.Reset(time.Second * 5)
case <-t2.C:
println("10s timer")
t2.Reset(time.Second * 10)
}
}
}
写出上面这段程序的目的是从 input channel 持续接收消息加以处理,同时希望每过5秒钟和每过10秒钟就分别执行一个定时任务