How to run Cron jobs in Go?

Better Stack Team
Updated on May 26, 2023

To run Cron jobs in Go, you can use a Go package called robfig/cron. Here are the steps to create and schedule a Go program using robfig/cron:

Install robfig/cron

You can install robfig/cron using the Go Package Manager (go get) with the following command:

 
go get github.com/robfig/cron

Create a Go program

Create a Go program with the code you want to run as a Cron job. For example, let's say you want to print "Hello world!" every minute. You can create a Go program called cron.go with the following code:

 
package main

import (
    "fmt"
    "time"

    "github.com/robfig/cron"
)

func main() {
    c := cron.New()

    // Define the Cron job schedule
    c.AddFunc("* * * * *", func() {
        fmt.Println("Hello world!")
    })

    // Start the Cron job scheduler
    c.Start()

    // Wait for the Cron job to run
    time.Sleep(5 * time.Minute)

    // Stop the Cron job scheduler
    c.Stop()
}

This code uses robfig/cron to define a Cron job that runs every minute. The code inside the Cron job prints "Hello, World!" to the console.

Run the Go program

You can run the Go program using the following command:

 
go run cron.go

This will start the Cron job and run the code defined in the cron.go program. The Cron job will continue to run until you stop the Go program.

Verify the Cron job

You can verify that the Cron job is running by checking the output of the Go program. You should see "Hello world!" printed to the console every minute.

By following these steps, you can create and schedule a Go program to run as a Cron job using robfig/cron.

Got an article suggestion? Let us know
Explore more
Licensed under CC-BY-NC-SA

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

We are hiring.

Software is our way of making the world a tiny bit better. We build tools for the makers of tomorrow.

Explore all positions →

Reliability is the
ultimate feature

Delightful observability tools that turn your logs & monitoring into a secret weapon for shipping better software faster.

Explore Better Stack