Go MIT

gocron

distributed scheduled task management system

G

gocronx-team

Dernière activité 25 sept. 2026
gocronx-team/gocron

807

étoiles

63

forks

14

issues ouvertes

croncrontabcrontaskdistributedgingogo-crongo-crontabgocrongolandschedulertaskvitevue3

Ce README est souvent en anglais.

gocron logo

gocron

A lightweight distributed scheduled task management system developed in Go, designed to replace Linux-crontab.

Release Downloads License

English · 简体中文

gocron Scheduled Tasks interface

Agent Auto-Registration Task Management
Agent Auto-Registration Task Management

AI Failure Diagnosis
AI Failure Diagnosis

📖 Documentation

Full documentation is available at: document

✨ Features

  • Web Interface: Intuitive task management interface
  • Second-level Precision: Supports Crontab expressions with second precision
  • High Availability: Database-lock-based leader election, automatic failover in seconds
  • Task Retry: Configurable retry policies for failed tasks
  • Task Dependency: Supports task dependency configuration
  • Access Control: Comprehensive user and permission management
  • 2FA Security: Two-Factor Authentication support
  • Agent Auto-Registration: One-click installation for Linux/macOS
  • MCP Support: Remote management by AI clients (Claude Desktop, Cursor, etc.) via the Model Context Protocol, secured with web-managed access tokens
  • AI Assist: Natural-language to cron expression, AI-powered failure-log diagnosis, and an in-app AI ops chat assistant (query tasks/logs/hosts/templates, diagnose failures), backed by any OpenAI-compatible model (configurable endpoint, also works with self-hosted/local models)
  • Multi-Database: MySQL / PostgreSQL / SQLite support
  • Container-Aware Memory: Automatically sets GOMEMLIMIT from the container's cgroup memory limit to reduce OOM kills in Docker/Kubernetes
  • Real-Time Task Output: Stream Shell (RPC) stdout/stderr in the Execution Output dialog while a job is running, with reconnect catch-up and acknowledged cancellation
  • Log Management: Complete execution logs with auto-cleanup; live output is redacted, size-limited, and persisted efficiently across MySQL / PostgreSQL / SQLite
  • Notifications: Email, Slack, Webhook support

🚀 Quick Start

The fastest way to try gocron is Docker Compose (builds the image from source locally):

# 1. Clone the project
git clone https://github.com/gocronx-team/gocron.git
cd gocron

# 2. Start services
docker compose up -d

# 3. Access Web Interface
# http://localhost:5920

For production, binary deployment is recommended. See the Installation Guide for all methods (Binary, Docker, Kubernetes, Development).

🔷 High Availability (Optional)

Deploy multiple gocron instances pointing to the same MySQL/PostgreSQL database. Leader election is automatic — no extra configuration needed. The Helm Chart runs in managed mode with two replicas by default: Kubernetes Service load-balances Web/API traffic, database bootstrap is coordinated once, and no shared PVC is required. SQLite remains available for standalone deployments.

# Node 1
./gocron web --port 5920

# Node 2 (same database)
./gocron web --port 5921

See the High Availability Guide for setup details, K8s deployment, and environment variable overrides.

🤝 Contributing

Contributions are welcome! See CONTRIBUTING.md for the full guide.

One thing to note: commit messages are validated by a git hook (commitlint), so use the interactive commit tool instead of git commit:

pnpm install      # first-time setup (installs git hooks)
pnpm run commit   # create a properly formatted commit

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

Projets similaires

Easy and fluent Go cron scheduling. This is a fork from https://github.com/jasonlvhit/gocron

Goclockworkcrongocron
Ggo-co-op
7,2 k étoiles353

Dkron - Distributed, fault tolerant job scheduling system https://dkron.io

Gocrondistributed-systemsfault-tolerance
Ddkron-io
4,7 k étoiles419

golang 开箱即用的秒级分布式定时任务系统

Gocrontabgolang
Hholdno
611 étoiles75