Skip to content

Using GoCron in Golang A Practical Guide to Task Scheduling

GoCron is a simple, efficient, and flexible job scheduling library for the Go programming language (also known as Golang). It enables developers to schedule tasks, automate repetitive jobs, and manage background processes in a user-friendly and efficient manner. In this article, we will explore how to use GoCron to schedule and manage tasks in a Golang application.

To start using GoCron, you need to have Golang installed on your system. If you haven’t installed it yet, follow the official installation guide here.

Once Golang is installed, you can install GoCron using the go get command:

Terminal window
go get -u github.com/jasonlvhit/gocron

This command will install the latest version of GoCron in your $GOPATH.

Let’s begin by creating a simple Go application that uses GoCron. First, create a new directory for your project and navigate to it:

Terminal window
mkdir gocron-example && cd gocron-example

Next, create a new file named `main. and open it in your favorite text editor.

In your `main. file, start by importing the necessary packages, including GoCron:

package main
import (
"fmt"
"github.com/jasonlvhit/gocron"
"time"
)

Now, let’s define some tasks to be executed by GoCron. For this example, we will create two simple tasks:

  1. A task that prints “Hello, World!” every second.
  2. A task that prints the current time every 10 seconds.

Define these tasks as functions in your `main. file:

func printHello() {
fmt.Println("Hello, World!")
}
func printCurrentTime() {
currentTime := time.Now().Format("15:04:05")
fmt.Printf("Current time: %s\n", currentTime)
}

Next, let’s schedule the tasks using GoCron. In your main. file, add the following code inside the main` function:

func main() {
// Schedule the tasks
gocron.Every(1).Second().Do(printHello)
gocron.Every(10).Seconds().Do(printCurrentTime)
// Start the scheduler
<-gocron.Start()
}

The gocron.Every(interval).Unit().Do(task) syntax is used to schedule a task with a specific interval and time unit. In our example, we scheduled printHello to run every second and printCurrentTime to run every 10 seconds.

The last line, <-gocron.Start(), starts the scheduler and keeps it running indefinitely.

Save the main. file and run the application using the go run` command:

Terminal window
go run main.go

You should see the “Hello, World!” message printed every second and the current time printed every 10 seconds.

GoCron also supports more advanced scheduling options, such as:

  • Running tasks at specific times using the At function.
  • Limiting the number of times a task is executed using the Limit function.
  • Removing scheduled tasks using the Remove function.

Refer to the official GoCron documentation for more information on these features and their usage.

GoCron is a powerful and easy-to-use task scheduling library for Golang applications. It can help you automate repetitive tasks, manage background processes, and improve the overall efficiency of your application. This article provided a brief introduction to GoCron and demonstrated how to use it to schedule and manage tasks in a Golang application.

© 2026 David Li · Home · Blog · RSS ·Classic site · Built with Astro, Starlight and three.js