Skip to content

Buerostack/CronManager

Repository files navigation

CronManager

Origin

Originally developed at Information System Authority of Estonia (Riigi Infosüsteemi Amet, RIA) as part of the Bürokratt project.

Maintenance

This repository is maintained by Rainer Türner (architect and development lead of the original project) since October 2, 2025, under the Buerostack organization to continue active development without affecting the owner of Bürokratt's version of CronManager.


A lightweight, Docker-ready cron-based job scheduler. Schedule and manage HTTP requests and shell script executions with simple YAML configurations.

About

CronManager is a Quartz-based job scheduling service built with Spring Boot that enables you to orchestrate HTTP requests and shell script executions using simple YAML configuration files. Designed for containerized environments, it provides a RESTful API for job management and supports cron expressions for flexible scheduling.

Quick Start

# Clone and start
git clone https://github.com/Buerostack/CronManager.git
cd CronManager
docker-compose up -d

# Verify it's running
curl http://localhost:9010/actuator/health

For detailed installation and setup, see the Getting Started Guide.

Features

  • HTTP Jobs: Execute GET, POST, PUT, DELETE, PATCH requests on schedule
  • Shell Jobs: Run shell scripts with environment variables
  • Cron Scheduling: Full Quartz cron expression support
  • Manual Triggers: Execute jobs on-demand via REST API
  • Time Boundaries: Set start/end dates for seasonal jobs
  • Docker Ready: Instant deployment with Docker Compose
  • RESTful API: Complete job management via HTTP endpoints

Basic Usage

Create a job definition in DSL/samples/my-jobs.yaml:

# HTTP job
health_check:
  trigger: "0 */5 * * * ?"  # Every 5 minutes
  type: http
  method: GET
  url: https://api.example.com/health

# Shell job
daily_backup:
  trigger: "0 0 2 * * ?"  # Daily at 2 AM
  type: exec
  command: ./scripts/samples/backup.sh

Restart to load: docker-compose restart

Documentation

Guides

Reference

Examples

API Quick Reference

# List all jobs
curl http://localhost:9010/jobs

# Execute a job manually
curl -X POST http://localhost:9010/execute/{group}/{job}

# View running jobs
curl http://localhost:9010/running

# Health check
curl http://localhost:9010/actuator/health

See API Reference for complete documentation.

Development

# Build locally
./gradlew build

# Run without Docker
./gradlew bootRun

# View logs
docker-compose logs -f cronmanager

See Contributing Guide for development setup and guidelines.

Troubleshooting

Common issues:

  • Jobs not loading: Check docker-compose logs -f cronmanager and verify YAML syntax
  • Container fails: Try docker-compose down && docker-compose up --build
  • Scripts not executing: Ensure scripts are executable with chmod +x scripts/samples/*.sh

See Troubleshooting Guide for comprehensive solutions.

Contributing

Please see CONTRIBUTING.md for guidelines on how to contribute to this project.

License

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


Maintained by Rainer Türner • Part of the Buerostack project

About

A generic component to handle back-end cronjobs

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 12