gocron is a Golang job scheduling package which lets you run Go functions periodically at pre-determined interval using a simple, human-friendly syntax.
gocron is a Golang implementation of the Ruby module clockwork and the Python job scheduling package schedule.
See also these two great articles:
If you want to chat, you can find us at Slack!
Take a look in our go docs
-
Q: I'm running multiple pods on a distributed environment. How can I make a job not run once per pod causing duplication?
-
A: We recommend using your own lock solution within the jobs themselves (you could use Redis, for example)
-
Q: I've removed my job from the scheduler, but how can I stop a long-running job that has already been triggered?
-
A: We recommend using a means of canceling your job, e.g. a
context.WithCancel()
.
Looking to contribute? Try to follow these guidelines:
- Use issues for everything
- For a small change, just send a PR!
- For bigger changes, please open an issue for discussion before sending a PR.
- PRs should have: tests, documentation and examples (if it makes sense)
- You can also contribute by:
- Reporting issues
- Suggesting new features or enhancements
- Improving/fixing documentation
Jetbrains supports this project with GoLand licenses. We appreciate their support for free and open source software!