Skip to content

Commit a439cb5

Browse files
Fix caching of usage API endpoints (#2350)
Fix caching of usage API endpoints For the cases when we use timedelta(days=1) in defining ttl caching, use total_seconds() instead of seconds argument, as timedelta(days=1).seconds returns 0. Related to packit/dashboard#374 RELEASE NOTES BEGIN We have fixed the caching of data for the usage API endpoint. RELEASE NOTES END Reviewed-by: Matej Focko
2 parents 9644107 + 2ad5b3f commit a439cb5

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

packit_service/models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
logger = logging.getLogger(__name__)
6161

6262
_CACHE_MAXSIZE = 100
63-
_CACHE_TTL = timedelta(hours=1).seconds
63+
_CACHE_TTL = timedelta(hours=1).total_seconds()
6464

6565

6666
def get_pg_url() -> str:

packit_service/service/api/usage.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -743,7 +743,7 @@ def _get_past_usage_data(datetime_from=None, datetime_to=None, top=5):
743743
@usage_ns.route("/past-day")
744744
class UsagePastDay(Resource):
745745
@usage_ns.response(HTTPStatus.OK, "Providing data about Packit usage")
746-
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(hours=1).seconds)
746+
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(hours=1).total_seconds())
747747
def get(self):
748748
yesterday_date = (datetime.now() - timedelta(days=1)).strftime("%Y-%m-%d")
749749
return _get_past_usage_data(datetime_from=yesterday_date)
@@ -752,7 +752,7 @@ def get(self):
752752
@usage_ns.route("/past-week")
753753
class UsagePastWeek(Resource):
754754
@usage_ns.response(HTTPStatus.OK, "Providing data about Packit usage")
755-
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(hours=1).seconds)
755+
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(hours=1).total_seconds())
756756
def get(self):
757757
past_week_date = (datetime.now() - timedelta(days=7)).strftime("%Y-%m-%d")
758758
return _get_past_usage_data(datetime_from=past_week_date)
@@ -761,7 +761,7 @@ def get(self):
761761
@usage_ns.route("/past-month")
762762
class UsagePastMonth(Resource):
763763
@usage_ns.response(HTTPStatus.OK, "Providing data about Packit usage")
764-
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(days=1).seconds)
764+
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(days=1).total_seconds())
765765
def get(self):
766766
now = datetime.now()
767767
past_month_past_day = now.replace(day=1) - timedelta(days=1)
@@ -774,7 +774,7 @@ def get(self):
774774
@usage_ns.route("/past-year")
775775
class UsagePastYear(Resource):
776776
@usage_ns.response(HTTPStatus.OK, "Providing data about Packit usage")
777-
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(days=1).seconds)
777+
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(days=1).total_seconds())
778778
def get(self):
779779
now = datetime.now()
780780
past_year_date = now.replace(year=now.year - 1).strftime("%Y-%m-%d")
@@ -784,7 +784,7 @@ def get(self):
784784
@usage_ns.route("/total")
785785
class UsageTotal(Resource):
786786
@usage_ns.response(HTTPStatus.OK, "Providing data about Packit usage")
787-
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(days=1).seconds)
787+
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(days=1).total_seconds())
788788
def get(self):
789789
past_date = _DATE_IN_THE_PAST.strftime("%Y-%m-%d")
790790
return _get_past_usage_data(datetime_from=past_date)
@@ -794,7 +794,7 @@ def get(self):
794794
CHART_DATA_TYPE = list[dict[str, Union[str, int]]]
795795

796796

797-
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(hours=1).seconds)
797+
@ttl_cache(maxsize=_CACHE_MAXSIZE, ttl=timedelta(hours=1).total_seconds())
798798
def _get_usage_interval_data(
799799
days: int, hours: int, count: int
800800
) -> dict[str, Union[str, CHART_DATA_TYPE, dict[str, CHART_DATA_TYPE]]]:

0 commit comments

Comments
 (0)