Don't allow parallel sites.json loading

This commit is contained in:
shortcutme 2020-01-22 16:35:40 +01:00
parent e75e199334
commit a9368bb3c8
No known key found for this signature in database
GPG Key ID: 5B63BAE6CB9613AE
1 changed files with 7 additions and 3 deletions

View File

@ -7,6 +7,7 @@ import atexit
import gevent import gevent
import util
from Plugin import PluginManager from Plugin import PluginManager
from Content import ContentDb from Content import ContentDb
from Config import config from Config import config
@ -27,12 +28,15 @@ class SiteManager(object):
atexit.register(lambda: self.save(recalculate_size=True)) atexit.register(lambda: self.save(recalculate_size=True))
# Load all sites from data/sites.json # Load all sites from data/sites.json
@util.Noparallel()
def load(self, cleanup=True, startup=False): def load(self, cleanup=True, startup=False):
self.log.debug("Loading sites...") from Debug import Debug
self.log.info("Loading sites... (cleanup: %s, startup: %s)" % (cleanup, startup))
self.loaded = False self.loaded = False
from .Site import Site from .Site import Site
address_found = [] address_found = []
added = 0 added = 0
load_s = time.time()
# Load new adresses # Load new adresses
try: try:
json_path = "%s/sites.json" % config.data_dir json_path = "%s/sites.json" % config.data_dir
@ -87,7 +91,7 @@ class SiteManager(object):
del content_db.sites[address] del content_db.sites[address]
if added: if added:
self.log.debug("SiteManager added %s sites" % added) self.log.info("Added %s sites in %.3fs" % (added, time.time() - load_s))
self.loaded = True self.loaded = True
def saveDelayed(self): def saveDelayed(self):
@ -196,7 +200,7 @@ class SiteManager(object):
def delete(self, address): def delete(self, address):
self.sites_changed = int(time.time()) self.sites_changed = int(time.time())
self.log.debug("SiteManager deleted site: %s" % address) self.log.debug("Deleted site: %s" % address)
del(self.sites[address]) del(self.sites[address])
# Delete from sites.json # Delete from sites.json
self.save() self.save()