diff --git a/src/forecaster/service/__main__.py b/src/forecaster/service/__main__.py index cf5e881109529560d47d5e1b0ac30333d760e32f..54f3331fab21eecfe926226b189b785afa9a98e9 100644 --- a/src/forecaster/service/__main__.py +++ b/src/forecaster/service/__main__.py @@ -16,27 +16,28 @@ import logging, signal, sys, threading from prometheus_client import start_http_server from common.Constants import ServiceNameEnum from common.Settings import ( - ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, get_log_level, get_metrics_port, - wait_for_environment_variables) + ENVVAR_SUFIX_SERVICE_HOST, ENVVAR_SUFIX_SERVICE_PORT_GRPC, get_env_var_name, + get_log_level, get_metrics_port, wait_for_environment_variables +) from .ForecasterService import ForecasterService -terminate = threading.Event() -LOGGER : logging.Logger = None + +TERMINATE = threading.Event() + +LOG_LEVEL = get_log_level() +logging.basicConfig(level=LOG_LEVEL, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") +logging.getLogger('apscheduler.executors.default').setLevel(logging.WARNING) +logging.getLogger('apscheduler.scheduler').setLevel(logging.WARNING) +logging.getLogger('monitoring-client').setLevel(logging.WARNING) +LOGGER = logging.getLogger(__name__) + def signal_handler(signal, frame): # pylint: disable=redefined-outer-name LOGGER.warning('Terminate signal received') - terminate.set() + TERMINATE.set() -def main(): - global LOGGER # pylint: disable=global-statement - - log_level = get_log_level() - logging.basicConfig(level=log_level, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") - logging.getLogger('apscheduler.executors.default').setLevel(logging.WARNING) - logging.getLogger('apscheduler.scheduler').setLevel(logging.WARNING) - logging.getLogger('monitoring-client').setLevel(logging.WARNING) - LOGGER = logging.getLogger(__name__) +def main(): wait_for_environment_variables([ get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_HOST ), get_env_var_name(ServiceNameEnum.CONTEXT, ENVVAR_SUFIX_SERVICE_PORT_GRPC), @@ -53,12 +54,13 @@ def main(): metrics_port = get_metrics_port() start_http_server(metrics_port) - # Starting Forecaster service + # Starting service grpc_service = ForecasterService() grpc_service.start() + LOGGER.info('Running...') # Wait for Ctrl+C or termination signal - while not terminate.wait(timeout=1.0): pass + while not TERMINATE.wait(timeout=1.0): pass LOGGER.info('Terminating...') grpc_service.stop() @@ -66,5 +68,6 @@ def main(): LOGGER.info('Bye') return 0 + if __name__ == '__main__': sys.exit(main())