Make metadata backup a little more robust

This commit is contained in:
Kovid Goyal 2010-09-24 00:05:11 -06:00
parent 703ea3c778
commit 87d70304bd
2 changed files with 11 additions and 4 deletions

View File

@ -19,7 +19,7 @@ from calibre.utils.date import parse_date, now, UNDEFINED_DATE
from calibre.utils.search_query_parser import SearchQueryParser
from calibre.utils.pyparsing import ParseException
from calibre.ebooks.metadata import title_sort
from calibre import fit_image
from calibre import fit_image, prints
class MetadataBackup(Thread): # {{{
@ -39,9 +39,15 @@ class MetadataBackup(Thread): # {{{
id_ = self.db.dirtied_queue.get(True, 5)
except Empty:
continue
# If there is an exception is dump_func, we
# have no way of knowing
self.dump_func([id_])
except:
# Happens during interpreter shutdown
break
if self.dump_func([id_]) is None:
# An exception occured in dump_func, retry once
prints('Failed to backup metadata for id:', id_, 'once')
time.sleep(2)
if not self.dump_func([id_]):
prints('Failed to backup metadata for id:', id_, 'again, giving up')
# }}}

View File

@ -575,6 +575,7 @@ class LibraryDatabase2(LibraryDatabase, SchemaUpgrade, CustomColumns):
(book_id,))
if commit:
self.conn.commit()
return True
def dirtied(self, book_ids, commit=True):
self.conn.executemany(