Skip to content

Commit 8c0fdcb

Browse files
committed
packages: cache package details metadata for 59 seconds
For non-logged in users cache the expensive template which calls get_requiredby for 59 seconds, for glibc this spawns 100 queries.
1 parent 1101323 commit 8c0fdcb

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

Diff for: packages/views/display.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ def details(request, name='', repo='', arch=''):
138138
except RebuilderdStatus.DoesNotExist:
139139
pass
140140
return render(request, 'packages/details.html', {'pkg': pkg, 'rbstatus': rbstatus,
141-
'notreproducible': rbstatus.status == RebuilderdStatus.BAD if rbstatus else False})
141+
'notreproducible': rbstatus.status == RebuilderdStatus.BAD if rbstatus else False,
142+
'cache_time': 0 if request.user.is_authenticated else 59 })
142143
except Package.DoesNotExist:
143144
# attempt a variety of fallback options before 404ing
144145
options = (redirect_agnostic, split_package_details,

Diff for: templates/packages/package_details.html

+3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{% load humanize %}
2+
{% load cache %}
23
{% load details_link %}
34
<div id="pkgdetails" class="box">
45
<h2>{{ pkg.pkgname }} {{ pkg.full_version }}</h2>
@@ -213,6 +214,7 @@ <h4>Versions Elsewhere</h4>
213214
</table>
214215
</div>
215216

217+
{% cache cache_time package-details-metadata user.is_authenticated %}
216218
<div id="metadata">
217219
{% with deps=pkg.get_depends %}
218220
<div id="pkgdeps" class="listing">
@@ -251,4 +253,5 @@ <h3 title="Complete list of so-names the package links too">
251253
</div>
252254
</div>
253255
</div>
256+
{% endcache %}
254257
</div>

0 commit comments

Comments
 (0)