perf: improved campaigns suggestion perfomance by caching some things

This commit is contained in:
ITQ
2025-02-21 13:31:39 +03:00
parent 9d92bbdc68
commit f8ae0798d3
9 changed files with 220 additions and 64 deletions
@@ -0,0 +1,35 @@
from typing import Any
from django.core.management.base import BaseCommand
from apps.campaign.models import Campaign
from apps.mlscore.models import Mlscore
class Command(BaseCommand):
help = (
"Initialize cache with current counts of "
"impressions, clicks, and ML scores."
)
def handle(self, *args: Any, **kwargs: Any) -> None:
for campaign in Campaign.objects.all():
campaign.setup_cache()
self.stdout.write(
self.style.SUCCESS(
f"Initialized cache for Campaign {campaign.id}: "
f"{campaign.impressions_count} impressions, "
f"{campaign.clicks_count} clicks."
)
)
for mlscore in Mlscore.objects.all():
mlscore.setup_cache()
self.stdout.write(
self.style.SUCCESS(
f"Initialized cache for MLscore: "
f"Client {mlscore.client_id}, "
f"Advertiser {mlscore.advertiser_id}, "
f"Score {mlscore.score}."
)
)