import os import sentry_sdk from ddtrace import patch_all, tracer from sentry_sdk.utils import BadDsn import config as config from constants.common import DSP from logger import logger from processings.get_chart_ids_to_process import get_charts_to_process from processings.process_charts import process_charts from utils import check_clients, time_logger if os.environ.get("DATADOG_SERVICE_NAME"): patch_all() else: tracer.enabled = False try: if config.ENVIRONMENT != "local": sentry_sdk.init(dsn=config.SENTRY_DSN, environment=config.ENVIRONMENT) except BadDsn: pass def job(): # We need this step to check if our clients are fully configured check_clients() for dsp_run in config.DSP: try: dsp = DSP(dsp_run) except ValueError: raise logger.info(f"Charts monitoring job is Starting to process \n" f"DSP: {dsp.value.capitalize()}.") charts = get_charts_to_process(dsp) logger.info( f"Got - {len(charts)} charts to update \n" f"For DSP: {dsp.value.capitalize()}.\n" f"Charts to update: \n" f" {charts}" ) if not charts: logger.info(f"Got nothing to process \n" f"For DSP: {dsp.value.capitalize()}") continue logger.info(f"Got {len(charts)} charts to update for {dsp.value.capitalize()}.") process_charts(dsp, charts) @time_logger(logger, config.APP_NAME) def handler(): """Check if delphi chart(s) is/are updated, create event for additions/removals/moves of the tracks for every chart and send event to User Data Api""" job() if __name__ == "__main__": handler()