PitchHut logo
A modern, fault-tolerant replacement for traditional cron jobs.
Pitch

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.

Description

The cronstable wordmark; its l is a live self-balancing double pendulum: it sways through the theme glitches, collapses when the signal drops, and swings itself back upright

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.

0 comments

No comments yet.

Sign in to be the first to comment.