diff --git a/maap_utils/JobManager.py b/maap_utils/JobManager.py index ed8261637be9ce251dc0d5d82d45553909c87886..460778a497080929c6222f0dcb2fbb544682b91f 100644 --- a/maap_utils/JobManager.py +++ b/maap_utils/JobManager.py @@ -43,23 +43,28 @@ class JobManager: ) tqdm.write("Submitting jobs") - for job_kwargs in tqdm( - self.job_kwargs_list[: self.config.job_limit], - total=total_jobs, - desc="", - ): - try: - job = Job(job_kwargs) - job.submit() - self.ledger.add_job(job) - job_batch_counter += 1 - except Exception as e: - logging.error(f"Error submitting job: {e}") - continue - - if job_batch_counter == job_batch_size: - time.sleep(job_submit_delay) - job_batch_counter = 0 + try: + for job_kwargs in tqdm( + self.job_kwargs_list[: self.config.job_limit], + total=total_jobs, + desc="", + ): + try: + job = Job(job_kwargs) + job.submit() + self.ledger.add_job(job) + job_batch_counter += 1 + except Exception as e: + logging.error(f"Error submitting job: {e}") + continue + + if job_batch_counter == job_batch_size: + time.sleep(job_submit_delay) + job_batch_counter = 0 + except KeyboardInterrupt: + logging.info("Submission interrupted by user") + self.exit_gracefully() + sys.exit(1) # Store output_dir and write job IDs self.output_dir = output_dir