From 3a9ded9315f6e3ec4543ce6c464c38172dcbecba Mon Sep 17 00:00:00 2001 From: shortcutme Date: Wed, 29 Aug 2018 19:54:31 +0200 Subject: [PATCH] On startup don't run more than 5 checkSite at the same time --- src/File/FileServer.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/File/FileServer.py b/src/File/FileServer.py index 0e4a8a79..a0b27c31 100644 --- a/src/File/FileServer.py +++ b/src/File/FileServer.py @@ -6,6 +6,7 @@ import random import socket import gevent +import gevent.pool import util from Config import config @@ -263,6 +264,7 @@ class FileServer(ConnectionServer): @util.Noparallel() def checkSites(self, check_files=False, force_port_check=False): self.log.debug("Checking sites...") + s = time.time() sites_checking = False if self.port_opened is None or force_port_check: # Test and open port if not tested yet if len(self.sites) <= 2: # Don't wait port opening on first startup @@ -277,11 +279,13 @@ class FileServer(ConnectionServer): self.tor_manager.startOnions() if not sites_checking: + check_pool = gevent.pool.Pool(5) for site in sorted(self.sites.values(), key=lambda site: site.settings.get("modified", 0), reverse=True): # Check sites integrity - check_thread = gevent.spawn(self.checkSite, site, check_files) # Check in new thread + check_thread = check_pool.spawn(self.checkSite, site, check_files) # Check in new thread time.sleep(2) if site.settings.get("modified", 0) < time.time() - 60 * 60 * 24: # Not so active site, wait some sec to finish check_thread.join(timeout=5) + self.log.debug("Checksites done in %.3fs" % (time.time() - s)) def cleanupSites(self): import gc