Module run scheduling is currently done inside scheduler.py and it is slightly awkward for users to add a new way of scheduling model runs. To make this process slightly easier the scheduling will be refactored into an almost-plugin architecture. The schedulers will be stored in the codebase and a command line argument will be provided to allow switching between scheduling implementations.
[x] Refactor JobScheduler out of scheduler.py
[x] Add command line argument switching of schedulers
Module run scheduling is currently done inside scheduler.py and it is slightly awkward for users to add a new way of scheduling model runs. To make this process slightly easier the scheduling will be refactored into an almost-plugin architecture. The schedulers will be stored in the codebase and a command line argument will be provided to allow switching between scheduling implementations.