diff options
author | RaNaN <Mast3rRaNaN@hotmail.de> | 2011-06-02 17:01:59 +0200 |
---|---|---|
committer | RaNaN <Mast3rRaNaN@hotmail.de> | 2011-06-02 17:01:59 +0200 |
commit | 56754bcdbd15db520318a88ac779e1eb027853a8 (patch) | |
tree | 2d1a09b3fbe36eb6575e2ea757014b5c3d2dcb46 /module | |
parent | upload to fix (diff) | |
download | pyload-56754bcdbd15db520318a88ac779e1eb027853a8.tar.xz |
added several checks to improve stability
Diffstat (limited to 'module')
-rw-r--r-- | module/PluginThread.py | 3 | ||||
-rw-r--r-- | module/ThreadManager.py | 12 | ||||
-rw-r--r-- | module/database/DatabaseBackend.py | 21 | ||||
-rw-r--r-- | module/database/FileDatabase.py | 4 |
4 files changed, 36 insertions, 4 deletions
diff --git a/module/PluginThread.py b/module/PluginThread.py index 6a8b98e6d..007a17ef1 100644 --- a/module/PluginThread.py +++ b/module/PluginThread.py @@ -143,6 +143,9 @@ class DownloadThread(PluginThread): try: + if not hasattr(pyfile, "plugin"): continue + #this pyfile was deleted while queueing + pyfile.plugin.checkForSameFiles(starting=True) self.m.log.info(_("Download starts: %s" % pyfile.name)) diff --git a/module/ThreadManager.py b/module/ThreadManager.py index a8e8b2772..0a7408ecf 100644 --- a/module/ThreadManager.py +++ b/module/ThreadManager.py @@ -96,7 +96,17 @@ class ThreadManager: if self.core.debug: print_exc() self.checkThreadCount() - self.assignJob() + + try: + self.assignJob() + except Exception, e: + self.log.warning("Assign job error", e) + if self.core.debug: + print_exc() + + sleep(0.1) + self.assignJob() + #it may be failed non critical so we try it again #---------------------------------------------------------------------- def tryReconnect(self): diff --git a/module/database/DatabaseBackend.py b/module/database/DatabaseBackend.py index 95bb6a198..c147aa018 100644 --- a/module/database/DatabaseBackend.py +++ b/module/database/DatabaseBackend.py @@ -233,8 +233,27 @@ class DatabaseBackend(Thread): self.c.executemany("INSERT INTO users(name, password, email) VALUES (?, ?, ?)", users) move("pyload.db", "pyload.old.db") - + + #try to lower ids + self.c.execute('SELECT max(id) FROM LINKS') + fid = self.c.fetchone()[0] + if fid: + fid = int(fid) + else: + fid = 0 + self.c.execute('UPDATE SQLITE_SEQUENCE SET seq=? WHERE name=?', (fid, "links")) + + + self.c.execute('SELECT max(id) FROM packages') + pid = self.c.fetchone()[0] + if pid: + pid = int(fid) + else: + pid = 0 + self.c.execute('UPDATE SQLITE_SEQUENCE SET seq=? WHERE name=?', (pid, "packages")) + self.c.execute('VACUUM') + def createCursor(self): return self.conn.cursor() diff --git a/module/database/FileDatabase.py b/module/database/FileDatabase.py index 3ba43f881..7ecf81576 100644 --- a/module/database/FileDatabase.py +++ b/module/database/FileDatabase.py @@ -96,7 +96,7 @@ class FileHandler: self.db.syncSave() - #---------------------------------------------------------------------- + @lock def getCompleteData(self, queue=1): """gets a complete data representation""" @@ -112,7 +112,7 @@ class FileHandler: return packs - #---------------------------------------------------------------------- + @lock def getInfoData(self, queue=1): """gets a data representation without links""" |