save remaining syncmetadata tasks on shutdown

This commit is contained in:
j 2016-02-27 10:19:45 +05:30
commit be1c4085f2
2 changed files with 9 additions and 0 deletions

View file

@ -873,8 +873,15 @@ def sync_metadata(ids=None):
else:
later = []
if ids:
done = set()
for i in Item.query.filter(Item.id.in_(ids)):
i.sync_metadata()
done.add(i.id)
if state.shutdown:
later = list((set(later) | set(ids)) - done)
if later and state.tasks:
state.tasks.queue('syncmetadata', later)
later = None
if later:
if state.main and state.tasks:
state.main.call_later(delay, lambda: state.tasks.queue('syncmetadata', later))