]> git.lizzy.rs Git - nhentai.git/commitdiff
singleton pool
authorRicterZ <ricterzheng@gmail.com>
Thu, 1 Aug 2019 10:52:30 +0000 (18:52 +0800)
committerRicterZ <ricterzheng@gmail.com>
Thu, 1 Aug 2019 10:52:30 +0000 (18:52 +0800)
nhentai/downloader.py

index eee7d78ab0b72be9089ec5824c308bdabafbaf24..3d2db81d13b8e113f5541584fc85f80b848a27c9 100644 (file)
@@ -27,6 +27,17 @@ class NHentaiImageNotExistException(Exception):
     pass
 
 
+class Pool(Singleton):
+    pool = None
+
+    def __init__(self, size, init):
+        if self.pool is None:
+            if os.getenv('DEBUG'):
+                logger.info('Process pool created')
+
+            self.pool = mp.Pool(size, initializer=init)
+
+
 class Downloader(Singleton):
 
     def __init__(self, path='', thread=1, timeout=30, delay=0):
@@ -135,7 +146,7 @@ class Downloader(Singleton):
 
         queue = [(self, url, folder) for url in queue]
 
-        pool = mp.Pool(self.thread_count, init_worker)
+        pool = Pool(self.thread_count, init_worker).pool
         for item in queue:
             pool.apply_async(download_wrapper, args=item, callback=self._download_callback)