src/pyams_scheduler/include.py
changeset 13 1ef4d38681e8
parent 10 1caa81990b67
child 16 0a23439ac705
equal deleted inserted replaced
12:254b16bfecaa 13:1ef4d38681e8
    26 
    26 
    27 # import packages
    27 # import packages
    28 from pyams_scheduler.process import SchedulerProcess, SchedulerMessageHandler
    28 from pyams_scheduler.process import SchedulerProcess, SchedulerMessageHandler
    29 from pyams_utils.zodb import get_connection_from_settings
    29 from pyams_utils.zodb import get_connection_from_settings
    30 from pyams_zmq.process import process_exit_func
    30 from pyams_zmq.process import process_exit_func
       
    31 from zmq.error import ZMQError
    31 
    32 
    32 
    33 
    33 def include_package(config):
    34 def include_package(config):
    34     """Pyramid package include"""
    35     """Pyramid package include"""
    35 
    36 
    73                                               name=task.name,
    74                                               name=task.name,
    74                                               kwargs={'zeo_settings': zeo_connection.get_settings(),
    75                                               kwargs={'zeo_settings': zeo_connection.get_settings(),
    75                                                       'registry': config.registry})
    76                                                       'registry': config.registry})
    76                 logger.debug("Starting tasks scheduler {0!r}".format(process))
    77                 logger.debug("Starting tasks scheduler {0!r}".format(process))
    77                 # start process
    78                 # start process
    78                 process.start()
    79                 try:
    79                 if process.is_alive():
    80                     process.start()
    80                     atexit.register(process_exit_func, process=process)
    81                 except ZMQError:
       
    82                     process.join()
       
    83                 else:
       
    84                     if process.is_alive():
       
    85                         atexit.register(process_exit_func, process=process)