import logging from datetime import timedelta from google.api_core.exceptions import NotFound from celery import shared_task from django.utils import timezone from django.conf import settings from labs.user_events.google_analytics import sync_ga_events_from_bigquery logger = logging.getLogger(__name__) @shared_task() def sync_last_3_days_ga_events(): if not settings.GA_GOOGLE_CREDENTIALS_JSON: logger.info("GA_GOOGLE_CREDENTIALS_JSON is not set, skipping") return today = timezone.now().date() for i in range(3): target_date = today - timedelta(days=i + 1) try: sync_ga_events_from_bigquery(target_date, intraday=False) except NotFound: logger.info( f"Bigquery table not found for {today - timedelta(days=i + 1)}, skipping" ) @shared_task() def sync_last_3_days_ga_events_intraday(): if not settings.GA_GOOGLE_CREDENTIALS_JSON: logger.info("GA_GOOGLE_CREDENTIALS_JSON is not set, skipping") return today = timezone.now().date() for i in range(3): target_date = today - timedelta(days=i) try: sync_ga_events_from_bigquery(target_date, intraday=True) except NotFound: logger.info(f"Bigquery table not found for {target_date}, skipping")