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 minutecaptureStdout:trueweb:listen:- http://127.0.0.1:8080# optional: REST API and dashboard
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.
Comments
0Start the conversation
Share the first comment.