equal
deleted
inserted
replaced
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: |