repositorypackage
0.1.63
Repository: https://github.com/stonever/escheduler.git
Documentation: pkg.go.dev
# README
eScheduler 📅
eScheduler is a distributed task scheduling framework designed to handle various load balancing strategies. The framework allows clients to add and remove tasks dynamically by monitoring task statuses.
Features ✨
- Distributed Scheduling: Efficiently schedules tasks across multiple workers.
- Load Balancing: Utilizes least-load and sticky strategies for balanced task distribution.
- Priority Queue: Executes tasks based on their priority levels.
- Kubernetes Integration: Supports rolling updates by ensuring all tasks are running before proceeding.
- Mutex-Based Worker Registration: Prevents worker overload by limiting the number of workers registered at any given time.
How It Works 🛠️
- Initial Setup: Workers gather at a barrier to prevent premature scheduling.
- Re-Balancing: Workers re-balance after an initial wait period.
- Task Execution: Workers start tasks based on priority.
- Load Distribution: Least-load algorithm ensures no worker is overburdened.
- Sticky Strategy: Minimizes changes during reassignments to maintain stability.
- Worker Registration: Uses a mutex to check worker count before registration in etcd.
Getting Started 🚀
To get started with eScheduler, clone the repository and follow the setup instructions in the installation guide.
License 📄
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.
Contributing 🤝
We welcome contributions! Please see our contributing guidelines for more details.
Contact ✉️
For any inquiries or support, please open an issue on the GitHub repository.
Made with ❤️ by the eScheduler team.