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")