From 1283fe4918adb369432ea2acc378610a3d5142a9 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Sun, 6 Oct 2019 12:59:34 -0400 Subject: Cache package provider and dependency information The package provider and dependency queries are quite CPU-intensive and usually yield rather small result sets. Cache these values if the global caching mechanism is enabled. Signed-off-by: Lukas Fleischer --- web/lib/cachefuncs.inc.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'web/lib/cachefuncs.inc.php') diff --git a/web/lib/cachefuncs.inc.php b/web/lib/cachefuncs.inc.php index 881ad8f2..b2b96c24 100644 --- a/web/lib/cachefuncs.inc.php +++ b/web/lib/cachefuncs.inc.php @@ -79,4 +79,21 @@ function db_cache_value($dbq, $key, $ttl=600) { return $value; } +# Run a simple db query, retrieving and/or caching the result set if APC is +# available for use. Accepts an optional TTL value (defaults to 600 seconds). +function db_cache_result($dbq, $key, $fetch_style=PDO::FETCH_NUM, $ttl=600) { + $dbh = DB::connect(); + $status = false; + $value = get_cache_value($key, $status); + if (!$status) { + $result = $dbh->query($dbq); + if (!$result) { + return false; + } + $value = $result->fetchAll($fetch_style); + set_cache_value($key, $value, $ttl); + } + return $value; +} + ?> -- cgit v1.2.3-24-g4f1b