seems strange for `get_next_job` to be in charge of calling the shutdown callback