From 1eb97ea3816c51f16345c5c37de528a1d9abdfa1 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Fri, 2 Aug 2019 14:06:25 +0200 Subject: [PATCH] Delayed save of sites.json --- src/Site/Site.py | 2 +- src/Site/SiteManager.py | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Site/Site.py b/src/Site/Site.py index 7b4f5ec3..967a776f 100644 --- a/src/Site/Site.py +++ b/src/Site/Site.py @@ -125,7 +125,7 @@ class Site(object): if not SiteManager.site_manager.sites.get(self.address): SiteManager.site_manager.sites[self.address] = self SiteManager.site_manager.load(False) - SiteManager.site_manager.save() + SiteManager.site_manager.saveDelayed() def isServing(self): if config.offline: diff --git a/src/Site/SiteManager.py b/src/Site/SiteManager.py index 9da2b867..4af4e2d5 100644 --- a/src/Site/SiteManager.py +++ b/src/Site/SiteManager.py @@ -11,6 +11,7 @@ from Plugin import PluginManager from Content import ContentDb from Config import config from util import helper +from util import RateLimit @PluginManager.acceptPlugins @@ -82,6 +83,9 @@ class SiteManager(object): self.log.debug("SiteManager added %s sites" % added) self.loaded = True + def saveDelayed(self): + RateLimit.callAsync("Save sites.json", allowed_again=5, func=self.save) + def save(self, recalculate_size=False): if not self.sites: self.log.debug("Save skipped: No sites found")