from datetime import timedelta from django.core.management.base import BaseCommand from django.utils import timezone from tracker.models import Site from tracker.services.stats import refresh_daily class Command(BaseCommand): # 生产调度:1Panel 计划任务每日 00:10 执行 # docker exec python manage.py refresh_stats --days 2 # (回刷含今天在内的近 N 天,详见 Task 22 README) help = "回刷近 N 天日聚合(含今天)" def add_arguments(self, parser): parser.add_argument("--days", type=int, default=2) def handle(self, *args, **opts): today = timezone.localdate() total = 0 for site in Site.objects.filter(is_active=True): for i in range(opts["days"]): refresh_daily(site, today - timedelta(days=i)) total += 1 self.stdout.write(f"refreshed {total} site-days")