Posted at

Go で cronしたいなら go-scheduler がいいかも

More than 1 year has passed since last update.


あらまし

Go言語で一定時間ごとにタスクを実行するデーモンを作るときに

go-scheduler を使いました。

名前のせいか、検索してもほとんど出てこないのですが、使用感は悪くなかったので、紹介したいと思います。


使い方

godoc 見ればいいんですが、それだと記事の意味がほとんどないので紹介を。

func main() {

job := func() {
fmt.Println("Time's up!")
}
scheduler.Every(5).Seconds().Run(job) // 5秒ごと
scheduler.Every().Day().Run(job) // 毎日(のどこか)
scheduler.Every().Sunday().At("08:30").Run(job) // 日曜朝8:30に
}

競合(?)するgocron と機能は大体同じかなと。

ただ、あっちは入力を文字列としてとるので、いちいちSprintf()する必要があるのがネックで、

こちらは変数とか直に取れる。

最小単位もgocronと同じく秒です。


まとめ

go-schedulerを紹介しました。

Go言語で定時処理をするなら、gocronよりこちらを使ってみるのもよいかもしれません。