We are in need of someone to create a piece of web application that will be running on a "master node" server and that will interface and manage "worker nodes" by changing the cronjobs assigned to each node.
Use Case: I have 9 crons that are all very resource intensive and so I need to run them on 3 different worker nodes. When I create each cronjob I want the ability to assign each cron to a different node. When I create the cronjob, it's inserted into a mysql database for local management/record keeping. The worker nodes then poll the master node API endpoint every minute and determine what commands it needs to execute.
- Single UI on Master Node
- Master Node does not require root access, only apache, PHP and MySQL
- Worker Nodes run a single script that is set to be execute every minute which polls the master node for other commands to run.
- Worker Node script needs to execute commands asynchronously (do not wait for previous command to finish before executing the next one).
- Worker Node needs to send cron log back to Master Node when complete along with success/failure
- Master Node should have complete scheduling ability
- Master Node needs the ability to display cron output/logs historically.
- Crons are to be assigned to specific nodes/names
- A way to add/remove/update Worker Nodes
The UI should be clean (example: [url removed, login to view]) and provide both the last runtime result as well as cronjob logs (cron output).
I am not yet sure what effort is needed to make this happen.