在CentOS上使用Golang实现定时任务,你可以使用以下两种方法:
time
包:在Golang中,你可以使用time
包来实现定时任务。下面是一个简单的示例:
package main
import (
"fmt"
"time"
)
func main() {
ticker := time.NewTicker(2 * time.Second)
defer ticker.Stop()
for {
select {
case <-ticker.C:
fmt.Println("执行定时任务:", time.Now())
}
}
}
这个示例中,我们创建了一个每2秒执行一次的定时任务。你可以根据需要调整时间间隔。
robfig/cron
:robfig/cron
是一个功能强大的Golang定时任务库,它提供了类似于Unix cron的功能。首先,你需要安装这个库:
go get github.com/robfig/cron/v3
然后,你可以使用以下示例代码创建一个定时任务:
package main
import (
"fmt"
"github.com/robfig/cron/v3"
)
func main() {
c := cron.New()
// 添加一个每2秒执行一次的任务
_, err := c.AddFunc("@every 2s", func() {
fmt.Println("执行定时任务:", time.Now())
})
if err != nil {
fmt.Println("添加定时任务失败:", err)
}
c.Start()
// 阻塞主线程,让定时任务继续执行
select {}
}
这个示例中,我们使用@every
语法添加了一个每2秒执行一次的任务。你可以根据需要调整时间间隔和任务逻辑。
注意:在使用robfig/cron
库时,请确保你的程序在运行过程中不会退出,否则定时任务将停止执行。你可以使用select {}
来阻塞主线程,让程序持续运行。