From cecb6f4e156942aa050f594bfa861ffae65ea03b Mon Sep 17 00:00:00 2001 From: nickb <nickb@ssec.wisc.edu> Date: Tue, 23 Feb 2021 16:48:42 +0000 Subject: [PATCH] timeout if gridding + tiling ever takes longer than 10 minutes (#26) --- gridded_glm/libexec/_minute_gridder.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gridded_glm/libexec/_minute_gridder.py b/gridded_glm/libexec/_minute_gridder.py index 2238633..c24cb71 100644 --- a/gridded_glm/libexec/_minute_gridder.py +++ b/gridded_glm/libexec/_minute_gridder.py @@ -44,6 +44,7 @@ import shutil import atexit from glob import glob import socket +import signal from netCDF4 import Dataset #from multiprocessing import freeze_support # https://docs.python.org/2/library/multiprocessing.html#multiprocessing.freeze_support from functools import partial @@ -300,8 +301,13 @@ def add_gglm_attrs(netcdf_filename, input_filenames): except: log.error("could not add CSPP Geo GGLM attributes to {}".format(netcdf_filename)) +def alarm_handler(signum, frame): + raise OSError("Timeout exceeded!") if __name__ == '__main__': + signal.signal(signal.SIGALRM, alarm_handler) + signal.alarm(10*60) # timeout if we're not done after 10 minutes + # freeze_support() # nb. I don't think this is needed as we're not making windows execs at this time parser = create_parser() args = parser.parse_args() -- GitLab