From 3ca323f8b07dbde15106152922e2770be6f47a24 Mon Sep 17 00:00:00 2001 From: Vadim Ushakov Date: Wed, 28 Oct 2020 17:56:11 +0700 Subject: [PATCH] FileServer: move loadTrackersFile() to a separate thread --- src/File/FileServer.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/File/FileServer.py b/src/File/FileServer.py index 5f18c645..186d88a3 100644 --- a/src/File/FileServer.py +++ b/src/File/FileServer.py @@ -318,11 +318,21 @@ class FileServer(ConnectionServer): site.sendMyHashfield(3) site.updateHashfield(3) + # Periodic reloading of tracker files + def reloadTrackerFilesThread(self): + # TODO: + # This should probably be more sophisticated. + # We should check if the files have actually changed, + # and do it more often. + interval = 60 * 10 + while 1: + time.sleep(interval) + config.loadTrackersFile() + # Announce sites every 20 min def announceSites(self): time.sleep(5 * 60) # Sites already announced on startup while 1: - config.loadTrackersFile() s = time.time() for address, site in list(self.sites.items()): if not site.isServing(): @@ -387,6 +397,7 @@ class FileServer(ConnectionServer): if check_sites: # Open port, Update sites, Check files integrity gevent.spawn(self.checkSites) + thread_reaload_tracker_files = gevent.spawn(self.reloadTrackerFilesThread) thread_announce_sites = gevent.spawn(self.announceSites) thread_cleanup_sites = gevent.spawn(self.cleanupSites) thread_wakeup_watcher = gevent.spawn(self.wakeupWatcher)