distributed-scheduler

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2025 License: MIT

README

Distributed scheduler

Welcome to the Distributed Scheduler repository! This system, consisting of a Management API 🛠️ and a Runner service 🏃‍♀️, allows you to easily schedule and manage jobs that execute at specified times in the future.

Features

  • Job Scheduling: Schedule jobs to run at specific times in the future.
    • One-Time and Recurring Jobs: Schedule jobs to run once or on a recurring basis.
    • Cron Syntax: Use cron syntax to schedule recurring jobs.
    • HTTP or AMQP Jobs: Send messages to an HTTP endpoint or an AMQP queue.
  • Job Management: View, update, and delete jobs.

Roadmap

  • Limit number of job executions: Limit the number of times a job can be executed.
  • Job Dependencies: Allow jobs to depend on other jobs.
  • Job Priorities: Allow jobs to be assigned priorities.
  • Job Retries: Allow jobs to be retried if they fail.
  • Job callbacks: Allow jobs to call a specified endpoint after completion.

Quickstart

You must have Docker and Docker Compose installed on your machine to run the system locally.

  1. Clone the repository:

    git clone https://github.com/TimeSnap/distributed-scheduler.git
    
    cd distributed-scheduler
    
  2. Run the system using Docker Compose:

    docker compose -f docker-compose.yml up
    

Configuration

Check out our detailed Local Development Guide and Configuration Guide.

Architecture

Check out our detailed Architecture Overview in the Documentation directory to learn more about the system's design.

Contributing

We welcome contributions! Please read our Contributing Guide to learn more about how to get involved.

License

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

Directories

Path Synopsis
cmd
manager command
runner command
tooling command
internal
api/http
@host http://localhost:8000 @BasePath /v1
@host http://localhost:8000 @BasePath /v1
pkg/database/dbmigrate
Package dbmigrate contains the database schema, migrations and seeding data.
Package dbmigrate contains the database schema, migrations and seeding data.
pkg/logger
Package logger provides a convenience function to constructing a logger for use.
Package logger provides a convenience function to constructing a logger for use.
pkg/tests/docker
Package docker provides support for starting and stopping docker containers for running tests.
Package docker provides support for starting and stopping docker containers for running tests.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL