Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Golang定时任务

Golang实现定时任务的几种方法小结

作者:沐知全栈开发

在 Golang 开发中,定时任务是常见的需求,本文将介绍几种在 Golang 中实现定时任务的方法,包括 time 包的定时器、ticker,以及第三方库 cron,并通过示例代码展示它们的使用方式,需要的朋友可以参考下

摘要:

在 Golang 开发中,定时任务是常见的需求。本文将介绍几种在 Golang 中实现定时任务的方法,包括 time 包的定时器、ticker,以及第三方库 cron,并通过示例代码展示它们的使用方式。

一、time 包的定时器(time.Timer 和 time.Ticker)

package main
import (
	"fmt"
	"time"
)
func main() {
	timer := time.NewTimer(2 * time.Second)
	<-timer.C
	fmt.Println("Timer expired")
}
package main
import (
	"fmt"
	"time"
)
func main() {
	ticker := time.NewTicker(1 * time.Second)
	for {
		select {
		case <-ticker.C:
			fmt.Println("Ticker ticked")
		}
	}
}

二、第三方库 cron

Golang 的第三方库 cron 提供了一个定时任务调度器,它基于 Unix cron 的语法,可以用来执行更复杂的定时任务。

go get github.com/robfig/cron
package main
import (
	"fmt"
	"github.com/robfig/cron"
	"time"
)
func main() {
	c := cron.New()
	// 添加定时任务
	c.AddFunc("*/5 * * * * ?", func() {
		fmt.Println("Cron ticked", time.Now())
	})
	// 启动定时任务
	c.Start()
	// 阻塞主线程,否则主线程退出后定时任务也会停止
	select {}
}

在这个例子中,我们使用 */5 * * * * ? 表达式添加了一个每 5 秒执行一次的定时任务。

三、总结

在 Golang 中实现定时任务有多种方法,可以使用标准库 time 的定时器和 ticker,也可以使用第三方库 cron 来实现更复杂的定时任务。根据实际需求选择合适的方法,可以方便地在 Golang 中完成定时任务的开发。

到此这篇关于Golang实现定时任务的几种方法小结的文章就介绍到这了,更多相关Golang定时任务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文