Cronstable is a highly available, fully configurable cron replacement designed for modern containerized environments. With features like leader election, fault tolerance, and multi-architecture support, it streamlines scheduled task management while ensuring robust performance across multiple platforms.

cronstable is a modern and robust cron replacement designed to enhance stability and performance in containerized environments. This production-ready tool is container-friendly, optionally distributed, fault-tolerant, and highly configurable. Below are the key features and value propositions:
Key Features
- Built for Security: Runs seamlessly under restricted Kubernetes PodSecurity settings, ensuring non-root operation and a read-only root filesystem.
- Precompiled: Offers self-contained binaries for major operating systems including Linux, macOS, and Windows, making Python on the host optional.
- Observability and Durability: Features a live web dashboard, native Prometheus metrics, per-job resource monitoring, and opt-in durable state, providing detailed insights into scheduling and job performance.
Functional Advantages
- Intuitive Schedule Formatting: Use YAML format or classic crontab files. Supports business-day schedules, making it easy to define recurring tasks commonly used for payroll and billing.
- Built-in Schedule Linting: Identifies potential errors in job scheduling to prevent silent failures.
- Real-time Monitoring and Notifications: Automatically sends alerts via Sentry, email, or webhooks in case of job failures, with options for retries and exponential backoff.
- Optimized for Container Environments: Suitable for deployment in Docker or Kubernetes, operating as a non-root user and adhering to secure coding practices.
- Durable State Management: Configure cronstable to save state across restarts, ensuring reliability even after outages.
- DAG Support and Orchestration: Facilitates complex job dependencies within a Directed Acyclic Graph (DAG) setup, enabling dynamic task management and data sharing across tasks.
- Resource Monitoring: Monitors each job's CPU and memory usage live, integrated into a user-friendly dashboard.
- Clustering and Leader Election: Allows multiple instances of cronstable to coordinate effectively, eliminating the risk of overlapping job executions.
- Advanced API Integration: Features an optional REST API for managing job statuses and retrieving historical runs.
- Rich Dashboard Interface: A built-in web interface that provides real-time oversight of job statuses, log tails, and resource metrics.
- Interoperability with Calendar Apps: Supports iCal calendar integration for job schedules, simplifying task management.
Example Job Configuration
Create your job in a simple YAML format:
jobs:
- name: hello
command: echo "hello from cronstable on $(hostname)"
schedule: "* * * * *" # every minute
captureStdout: true
web:
listen:
- http://127.0.0.1:8080 # optional: REST API and dashboard
Run it in the foreground:
cronstable -c cronstable.yaml
Open the dashboard at http://127.0.0.1:8080/ to see your job execution live.
Conclusion
cronstable is built for high availability and operational excellence, providing a sophisticated and efficient replacement for traditional cron jobs. Learn more about cronstable and its features by visiting the project on GitHub.
No comments yet.
Sign in to be the first to comment.