X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/1536f4b129950f206b7ffabb38805d0e1dd47661..ddf2102eff7ea420a4ea5144c43409587fc1156e:/src/catalogue/management/commands/build_stale.py diff --git a/src/catalogue/management/commands/build_stale.py b/src/catalogue/management/commands/build_stale.py index b03e3e8e6..26e1cf65a 100644 --- a/src/catalogue/management/commands/build_stale.py +++ b/src/catalogue/management/commands/build_stale.py @@ -25,17 +25,20 @@ class Command(BaseCommand): def handle(self, **options): t = time() counter = 0 + tasks = [] while True: if options['time'] is not None and time() - t > options['time']: break if options['limit'] is not None and counter >= options['limit']: break - tasks = EbookField.find_all_stale(Book, 1) + if not tasks: + tasks = EbookField.find_all_stale(Book, options['limit'] or 100) if not tasks: break - for field_name, book in tasks: - print(field_name, book) - try: - getattr(book, field_name).build() - except Exception as e: - print('ERROR', e) + field_name, book = tasks.pop(0) + print(field_name, book) + counter += 1 + try: + getattr(book, field_name).build() + except Exception as e: + print('ERROR', e)