Go
golang

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

あらまし

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よりこちらを使ってみるのもよいかもしれません。