A minimalist, zero-dependency scheduling library for Go, inspired by Quartz, for managing jobs with cron and simple triggers.
go-quartz is a lightweight, zero-dependency scheduling library for Go. It provides a clean, modular API for scheduling and managing jobs, inspired by the architecture of the Java Quartz scheduler. It solves the problem of adding robust, cron-compatible task scheduling to Go applications without introducing external dependencies.
Go developers building applications that require scheduled background tasks, cron jobs, or periodic job execution. It is particularly suited for those who prefer a minimalistic, pure-Go solution without external bloat.
Developers choose go-quartz for its zero-dependency design and full support for Quartz cron expressions, offering a familiar scheduling paradigm from the Java world. Its modular architecture with clear Scheduler, Trigger, and Job interfaces provides flexibility while maintaining simplicity and reliability.
Minimalist and zero-dependency scheduling library for Go
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Has no external dependencies, making integration simple and avoiding bloat or version conflicts in Go projects, as emphasized in the README's description.
Supports the complete Quartz cron expression format with special characters like L, W, and #, offering more flexibility than standard Unix cron, as detailed in the README table.
Clear interfaces for Scheduler, Trigger, and Job allow easy customization and implementation of new job types, evidenced by the separate packages and examples.
Includes ready-made jobs like ShellJob, CurlJob, and FunctionJob for common tasks, reducing boilerplate code for developers, as shown in the usage example.
Distributed mode requires custom JobQueue implementation; the provided file-based example is basic and not suited for critical deployments without significant additional work.
Lacks automatic retry mechanisms or advanced error recovery for failed jobs, forcing users to implement these features manually in the Execute method.
Advanced features like custom job queues or integration patterns are only briefly mentioned, requiring developers to rely on source code exploration for guidance.