一般我們導(dǎo)入import ("time")包强窖,然后調(diào)用time.NewTicker(1 * time.Second) 實(shí)現(xiàn)一個(gè)定時(shí)器:
func timer( ) {
//新建計(jì)時(shí)器宝当,120秒以后觸發(fā)叹谁,go觸發(fā)計(jì)時(shí)器的方法比較特別藏鹊,就是在計(jì)時(shí)器的channel中發(fā)送值
tick :=time.NewTicker( 120 * time.Second)
for {
select {
//此處在等待channel中的信號(hào)悍汛,因此執(zhí)行此段代碼時(shí)會(huì)阻塞120秒
case <-tick:
xxx() //執(zhí)行我們想要的操作
}
}
}
注意點(diǎn):
- golang 的 select 就是監(jiān)聽(tīng) IO 操作
- case 里面應(yīng)該是一個(gè)面向channel的IO操作麸祷,然后觸發(fā)相應(yīng)的動(dòng)作佃延。
- for循環(huán)(無(wú)限循環(huán)),即每隔120S執(zhí)行一次