Add a cache-snapshot-ttl configuration variable This can be used to specify the TTL for snapshots. Snapshots are usually static and do not ever change. On the other hand, tarball generation is CPU intensive. One use case of this setting (apart from increasing the lifetime of snapshot cache slots) is caching of snapshots while disabling the cache for static/dynamic HTML pages (by setting TTL to zero for everything except for snapshot requests). Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
Lukas Fleischer cgit@cryptocrack.de
Wed, 05 Feb 2014 10:23:58 +0100
3 files changed,
12 insertions(+),
0 deletions(-)
M
cgit.c
→
cgit.c
@@ -184,6 +184,8 @@ else if (!strcmp(name, "cache-dynamic-ttl"))
ctx.cfg.cache_dynamic_ttl = atoi(value); else if (!strcmp(name, "cache-about-ttl")) ctx.cfg.cache_about_ttl = atoi(value); + else if (!strcmp(name, "cache-snapshot-ttl")) + ctx.cfg.cache_snapshot_ttl = atoi(value); else if (!strcmp(name, "case-sensitive-sort")) ctx.cfg.case_sensitive_sort = atoi(value); else if (!strcmp(name, "about-filter"))@@ -331,6 +333,7 @@ ctx.cfg.cache_size = 0;
ctx.cfg.cache_max_create_time = 5; ctx.cfg.cache_root = CGIT_CACHE_ROOT; ctx.cfg.cache_about_ttl = 15; + ctx.cfg.cache_snapshot_ttl = 5; ctx.cfg.cache_repo_ttl = 5; ctx.cfg.cache_root_ttl = 5; ctx.cfg.cache_scanrc_ttl = 15;@@ -994,6 +997,9 @@ return ctx.cfg.cache_repo_ttl;
if (!strcmp(ctx.qry.page, "about")) return ctx.cfg.cache_about_ttl; + + if (!strcmp(ctx.qry.page, "snapshot")) + return ctx.cfg.cache_snapshot_ttl; if (ctx.qry.has_sha1) return ctx.cfg.cache_static_ttl;
M
cgitrc.5.txt
→
cgitrc.5.txt
@@ -88,6 +88,11 @@ Number which specifies the time-to-live, in minutes, for the cached
version of the repository about page. Negative values have infinite ttl. Default value: "15". +cache-snapshot-ttl:: + Number which specifies the time-to-live, in minutes, for the cached + version of snapshots. Negative values have infinite ttl. Default + value: "5". + cache-size:: The maximum number of entries in the cgit cache. Default value: "0" (i.e. caching is disabled).