I have some python scripts that I look to run daily form a Windows PC.
My current workflow is:
- The desktop PC stays all every day except for a weekly restart over the weekend
- After the restart I open VS Code and run a little bash script
./start.sh
that kicks off the tasks.
The above works reasonably fine, but it is also fairly painful. I need to re-run start.sh
if I ever close VS Code (eg. for an update). Also the processes use some local python libraries so I need to stop them if I'm going to update them.
With regards to how to do this properly, 4 tools came to mind:
- Windows Scheduler
- Airflow
- Prefect (https://www.prefect.io/)
- Rocketry (https://rocketry.readthedocs.io/en/stable/)
However, I can't quite get my head around the fundamental issue that Prefect/Airflow/Rocketry run on my PC then there is nothing that will restart them after the PC reboots. I'm also not sure they will give me the isolation I'd prefer on these tools.
Docker came to mind, I could put each task into a docker image and run them via some form of docker swarm or something like that. But not sure if I'm re-inventing the wheel.
I'm 100% sure I'm not the first person in this situation. Could anyone point me to a guide on how this could be done well?
Note:
- I am not considering running the python scripts in the cloud. They interact with local tools that are only licenced for my PC.