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.
- 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.
- 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.
To get started with eScheduler, clone the repository and follow the setup instructions in the installation guide.
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.
We welcome contributions! Please see our contributing guidelines for more details.
For any inquiries or support, please open an issue on the GitHub repository.
Made with ❤️ by the eScheduler team.