src/pyams_scheduler/include.py
changeset 50 c66a8bf09662
parent 49 f65a0b93fea7
child 54 9f88cbe85980
equal deleted inserted replaced
49:f65a0b93fea7 50:c66a8bf09662
    16 # import standard library
    16 # import standard library
    17 import atexit
    17 import atexit
    18 import logging
    18 import logging
    19 logger = logging.getLogger('PyAMS (scheduler')
    19 logger = logging.getLogger('PyAMS (scheduler')
    20 
    20 
       
    21 import os.path
    21 import sys
    22 import sys
    22 
    23 
    23 # import interfaces
    24 # import interfaces
    24 from pyams_scheduler.interfaces import SCHEDULER_HANDLER_KEY, SCHEDULER_STARTER_KEY, SCHEDULER_NAME
    25 from pyams_scheduler.interfaces import SCHEDULER_HANDLER_KEY, SCHEDULER_STARTER_KEY, SCHEDULER_NAME
    25 from pyams_utils.interfaces import PYAMS_APPLICATION_SETTINGS_KEY, PYAMS_APPLICATION_DEFAULT_NAME
    26 from pyams_utils.interfaces import PYAMS_APPLICATION_SETTINGS_KEY, PYAMS_APPLICATION_DEFAULT_NAME
    52 
    53 
    53 @subscriber(IApplicationCreated)
    54 @subscriber(IApplicationCreated)
    54 def handle_new_application(event):
    55 def handle_new_application(event):
    55     """Start scheduler process when application is created"""
    56     """Start scheduler process when application is created"""
    56 
    57 
    57     # Check for upgrade mode
    58     # Check for PyAMS command line script
    58     if sys.argv[0].endswith('pyams_upgrade'):
    59     cmdline = os.path.split(sys.argv[0])[-1]
       
    60     if cmdline.startswith('pyams_'):
    59         return
    61         return
    60 
    62 
    61     registry = get_global_registry()
    63     registry = get_global_registry()
    62     settings = registry.settings
    64     settings = registry.settings
    63     start_handler = asbool(settings.get(SCHEDULER_STARTER_KEY, False))
    65     start_handler = asbool(settings.get(SCHEDULER_STARTER_KEY, False))
    66         connection = get_connection_from_settings(settings)
    68         connection = get_connection_from_settings(settings)
    67         root = connection.root()
    69         root = connection.root()
    68         # get application
    70         # get application
    69         application_name = settings.get(PYAMS_APPLICATION_SETTINGS_KEY, PYAMS_APPLICATION_DEFAULT_NAME)
    71         application_name = settings.get(PYAMS_APPLICATION_SETTINGS_KEY, PYAMS_APPLICATION_DEFAULT_NAME)
    70         application = root.get(application_name)
    72         application = root.get(application_name)
    71         process = None
       
    72         if application is not None:
    73         if application is not None:
    73             sm = application.getSiteManager()
    74             sm = application.getSiteManager()
    74             set_local_registry(sm)
    75             set_local_registry(sm)
       
    76             process = None
    75             try:
    77             try:
    76                 scheduler_util = sm.get(SCHEDULER_NAME)
    78                 scheduler_util = sm.get(SCHEDULER_NAME)
    77                 try:
    79                 try:
    78                     zodb_name = scheduler_util.zodb_name
    80                     zodb_name = scheduler_util.zodb_name
    79                 except ComponentLookupError:
    81                 except ComponentLookupError: