Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/walidbosso/java_task_scheduling
☕ A Distributed Task Scheduling System is a software infrastructure that allows for the distribution and execution of tasks across multiple nodes in a network. It enhances the efficiency and scalability of large-scale computation and data processing tasks by dividing complex tasks into smaller sub-tasks and distributing them.
https://github.com/walidbosso/java_task_scheduling
c java master-slave-architecture multithreading rmi swing task-scheduler tcp threads
Last synced: 2 months ago
JSON representation
☕ A Distributed Task Scheduling System is a software infrastructure that allows for the distribution and execution of tasks across multiple nodes in a network. It enhances the efficiency and scalability of large-scale computation and data processing tasks by dividing complex tasks into smaller sub-tasks and distributing them.
- Host: GitHub
- URL: https://github.com/walidbosso/java_task_scheduling
- Owner: walidbosso
- License: apache-2.0
- Created: 2023-07-21T09:12:41.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-08T11:05:42.000Z (10 months ago)
- Last Synced: 2024-04-08T12:26:54.675Z (10 months ago)
- Topics: c, java, master-slave-architecture, multithreading, rmi, swing, task-scheduler, tcp, threads
- Language: Java
- Homepage: https://github.com/walidbosso/Java_Task_Scheduling
- Size: 1.54 MB
- Stars: 22
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
![Java_Task_Scheduling](https://socialify.git.ci/walidbosso/Java_Task_Scheduling/image?description=1&descriptionEditable=Distribution%20and%20execution%20of%20tasks%20across%20multiple%20nodes%20It%20enhances%20the%20efficiency%20of%20large-scale%20computation.&font=Source%20Code%20Pro&forks=1&issues=1&language=1&name=1&owner=1&pattern=Formal%20Invitation&pulls=1&stargazers=1&theme=Auto)
[![GitHub WidgetBox](https://github-widgetbox.vercel.app/api/profile?username=walidbosso&data=followers,repositories,stars,commits&theme=nautilus)](https://github.com/walidbosso/Java_Task_Scheduling)
# Java Task Scheduling System
## Presentation:
- This project introduces a Java-based Distributed Task Scheduling System for parallel data(Image & Matrix) processing using `Threads`.
- Efficient task scheduling optimizes resource allocation and timeframes.## What does my project do exactly:
- Clients can easily submit various tasks like *Filter, Convolution, and Matrix*, executed via `RMI` on the server. All will be executed in parallel.
- Server and its workers further breaks down tasks to pieces and send them through `TCP` to slaves, then compiles outcomes when they are ready again, and then sends the result back to the client.
- Slaves play a pivotal role by executing assigned sub-tasks.
## Instructions:
- Fork & Clone the repository.- Install JDK if its not installed yet, when done, go to your system environement variables, Edit Path, and add "C:\Path\To\Your\JDK\bin" at the end of it.
- Put all 5 config.txt files+ image+ kernel.txt in Desktop
**Inside folder "src" open 8 of Git-Bash in each 1 of type these lines:**
```bash
# Compile Java files
javac Classes/*.java# Starts the slaves listening TCP
java Classes.SlaveTask config0.txt
java Classes.SlaveTask config1.txt
java Classes.SlaveTask config2.txt
java Classes.SlaveTask config3.txt# Open the RMI port
rmiregistry 13190# Start the server, creates multiple workers which works in parallel
java Classes.TaskSchedulerServer config.txt# Open the GUI
java Classes.Tasks
```## Extra
### A port open error:
```bash
jps #To see all javaprocess along with PID
```
```bash
taskkill /PID 5032 /F #To terminate in case it was needed, 5032 is just an example.
```### More ressources:
- In case you didn't want to do this manually and felt lazy, check the folder called `Xtra`, I included C codes where it can automatize this work, just fix the Path to each C file in each C code, compile each one of them. When you finish, run **TaskManagement_Process.exe**, this will run all the 8 commands I mentioned above automatically.
- Now whenever you feel like trying the project again just run **TaskManagement_Process.exe**, no need to run 8 commands every single time, consider creating a link to the .exe file instead and add an icon.
- Contact me in [LinkedIn](https://www.linkedin.com/in/walidbosso) for questions.
----------------------
> >
© *by Walid BOUSSOU* 🇲🇦 😄
----------------------👏 Thanks for the support
## Stargazers
[![Stargazers repo roster for @walidbosso/Java_Task_Scheduling](http://reporoster.com/stars/dark/walidbosso/Java_Task_Scheduling)](https://github.com/walidbosso/Java_Task_Scheduling/stargazers)
## Forkers
[![Forkers repo roster for @walidbosso/Java_Task_Scheduling](http://reporoster.com/forks/dark/walidbosso/Java_Task_Scheduling)](https://github.com/walidbosso/Java_Task_Scheduling/network/members)
## Contributors
![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/walidbosso/Java_Task_Scheduling?style=social)
![GitHub License](https://img.shields.io/github/license/walidbosso/Java_Task_Scheduling?style=social)
𝚂𝚑𝚘𝚠 𝚜𝚘𝚖𝚎 💙 𝚋𝚢 𝚜𝚝𝚊𝚛𝚛𝚒𝚗𝚐 ⭐ 𝚝𝚑𝚎 𝚛𝚎𝚙𝚘𝚜𝚒𝚝𝚘𝚛𝚢!