Track and stop site connected greenlets on delete

This commit is contained in:
shortcutme 2019-11-19 02:07:51 +01:00
parent 2ad3493fb0
commit 1c607645c7
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
6 changed files with 51 additions and 16 deletions

View file

@ -61,7 +61,7 @@ class ContentDbPlugin(object):
if self.need_filling:
self.fillTableFileOptional(site)
if not self.optional_files_loading:
gevent.spawn_later(1, self.loadFilesOptional)
site.greenlet_manager.spawnLater(1, self.loadFilesOptional)
self.optional_files_loading = True
def checkTables(self):

View file

@ -70,7 +70,7 @@ class ContentDbPlugin(object):
def savePeers(self, site, spawn=False):
if spawn:
# Save peers every hour (+random some secs to not update very site at same time)
gevent.spawn_later(60 * 60 + random.randint(0, 60), self.savePeers, site, spawn=True)
site.greenlet_manager.spawnLater(60 * 60 + random.randint(0, 60), self.savePeers, site, spawn=True)
if not site.peers:
site.log.debug("Peers not saved: No peers found")
return
@ -89,8 +89,8 @@ class ContentDbPlugin(object):
def initSite(self, site):
super(ContentDbPlugin, self).initSite(site)
gevent.spawn_later(0.5, self.loadPeers, site)
gevent.spawn_later(60*60, self.savePeers, site, spawn=True)
site.greenlet_manager.spawnLater(0.5, self.loadPeers, site)
site.greenlet_manager.spawnLater(60*60, self.savePeers, site, spawn=True)
def saveAllPeers(self):
for site in list(self.sites.values()):