add housekeeping task for orphaned counter cache entries

This commit is contained in:
Andrew Dolgov 2015-03-06 14:14:51 +03:00
parent 8b4bfd5ca5
commit 168cf351e2
2 changed files with 20 additions and 0 deletions

View File

@ -139,6 +139,7 @@
$result = db_query("SELECT SUM(value) AS sv $result = db_query("SELECT SUM(value) AS sv
FROM ttrss_counters_cache, ttrss_feeds FROM ttrss_counters_cache, ttrss_feeds
WHERE id = feed_id AND $cat_qpart AND WHERE id = feed_id AND $cat_qpart AND
ttrss_counters_cache.owner_uid = $owner_uid AND
ttrss_feeds.owner_uid = '$owner_uid'"); ttrss_feeds.owner_uid = '$owner_uid'");
$unread = (int) db_fetch_result($result, 0, "sv"); $unread = (int) db_fetch_result($result, 0, "sv");

View File

@ -1393,6 +1393,24 @@
return $error; return $error;
} */ } */
function cleanup_counters_cache($debug) {
$result = db_query("DELETE FROM ttrss_counters_cache
WHERE feed_id > 0 AND
(SELECT COUNT(id) FROM ttrss_feeds WHERE
id = feed_id AND
ttrss_counters_cache.owner_uid = ttrss_feeds.owner_uid) = 0");
$frows = db_affected_rows($result);
$result = db_query("DELETE FROM ttrss_cat_counters_cache
WHERE feed_id > 0 AND
(SELECT COUNT(id) FROM ttrss_feed_categories WHERE
id = feed_id AND
ttrss_cat_counters_cache.owner_uid = ttrss_feed_categories.owner_uid) = 0");
$crows = db_affected_rows($result);
_debug("Removed $frows (feeds) $crows (cats) orphaned counter cache entries.");
}
function housekeeping_common($debug) { function housekeeping_common($debug) {
expire_cached_files($debug); expire_cached_files($debug);
expire_lock_files($debug); expire_lock_files($debug);
@ -1402,6 +1420,7 @@
_debug("Feedbrowser updated, $count feeds processed."); _debug("Feedbrowser updated, $count feeds processed.");
purge_orphans( true); purge_orphans( true);
cleanup_counters_cache($debug);
$rc = cleanup_tags( 14, 50000); $rc = cleanup_tags( 14, 50000);
_debug("Cleaned $rc cached tags."); _debug("Cleaned $rc cached tags.");