equal
deleted
inserted
replaced
21 import sys |
21 import sys |
22 |
22 |
23 # import interfaces |
23 # import interfaces |
24 from pyams_media.interfaces import CONVERTER_HANDLER_KEY, CONVERTER_NAME |
24 from pyams_media.interfaces import CONVERTER_HANDLER_KEY, CONVERTER_NAME |
25 from pyams_utils.interfaces import PYAMS_APPLICATION_SETTINGS_KEY, PYAMS_APPLICATION_DEFAULT_NAME |
25 from pyams_utils.interfaces import PYAMS_APPLICATION_SETTINGS_KEY, PYAMS_APPLICATION_DEFAULT_NAME |
|
26 from pyramid.interfaces import IApplicationCreated |
26 |
27 |
27 # import packages |
28 # import packages |
28 from pyams_media.process import MediaConversionProcess, MediaConversionMessageHandler |
29 from pyams_media.process import MediaConversionProcess, MediaConversionMessageHandler |
29 from pyams_utils.registry import set_local_registry |
30 from pyams_utils.registry import set_local_registry |
30 from pyams_utils.zodb import get_connection_from_settings |
31 from pyams_utils.zodb import get_connection_from_settings |
31 from pyams_zmq.process import process_exit_func |
32 from pyams_zmq.process import process_exit_func |
|
33 from pyramid.events import subscriber |
|
34 from zope.component.globalregistry import getGlobalSiteManager |
32 |
35 |
33 |
36 |
34 def include_package(config): |
37 def include_package(config): |
35 """Pyramid include""" |
38 """Pyramid include""" |
36 |
39 |
43 except ImportError: |
46 except ImportError: |
44 config.scan(ignore='pyams_media.zmi') |
47 config.scan(ignore='pyams_media.zmi') |
45 else: |
48 else: |
46 config.scan() |
49 config.scan() |
47 |
50 |
|
51 |
|
52 @subscriber(IApplicationCreated) |
|
53 def handle_new_application(event): |
|
54 """Start converter process when application created""" |
|
55 |
48 # check for upgrade mode |
56 # check for upgrade mode |
49 if sys.argv[0].endswith('pyams_upgrade'): |
57 if sys.argv[0].endswith('pyams_upgrade'): |
50 return |
58 return |
51 |
59 |
52 settings = config.registry.settings |
60 registry = getGlobalSiteManager() |
|
61 settings = registry.settings |
53 start_handler = settings.get(CONVERTER_HANDLER_KEY, False) |
62 start_handler = settings.get(CONVERTER_HANDLER_KEY, False) |
54 if start_handler: |
63 if start_handler: |
55 # get database connection |
64 # get database connection |
56 connection = get_connection_from_settings(settings) |
65 connection = get_connection_from_settings(settings) |
57 root = connection.root() |
66 root = connection.root() |
64 set_local_registry(sm) |
73 set_local_registry(sm) |
65 try: |
74 try: |
66 conversion_util = sm.get(CONVERTER_NAME) |
75 conversion_util = sm.get(CONVERTER_NAME) |
67 if conversion_util is not None: |
76 if conversion_util is not None: |
68 # create medias converter process |
77 # create medias converter process |
69 process = MediaConversionProcess(start_handler, MediaConversionMessageHandler, config.registry) |
78 process = MediaConversionProcess(start_handler, MediaConversionMessageHandler, registry) |
70 logger.debug('Starting medias conversion process {0!r}...'.format(process)) |
79 logger.debug('Starting medias conversion process {0!r}...'.format(process)) |
71 process.start() |
80 process.start() |
72 if process.is_alive(): |
81 if process.is_alive(): |
73 atexit.register(process_exit_func, process=process) |
82 atexit.register(process_exit_func, process=process) |
74 finally: |
83 finally: |