mirror of
https://github.com/meeb/tubesync.git
synced 2025-06-25 14:36:34 +00:00
Use Django query set iterator function some more
This commit is contained in:
parent
d4c360eaee
commit
7c8c5e2b41
@ -205,7 +205,7 @@ def schedule_media_servers_update():
|
|||||||
# Schedule a task to update media servers
|
# Schedule a task to update media servers
|
||||||
log.info(f'Scheduling media server updates')
|
log.info(f'Scheduling media server updates')
|
||||||
verbose_name = _('Request media server rescan for "{}"')
|
verbose_name = _('Request media server rescan for "{}"')
|
||||||
for mediaserver in MediaServer.objects.all():
|
for mediaserver in MediaServer.objects.all().iterator():
|
||||||
rescan_media_server(
|
rescan_media_server(
|
||||||
str(mediaserver.pk),
|
str(mediaserver.pk),
|
||||||
verbose_name=verbose_name.format(mediaserver),
|
verbose_name=verbose_name.format(mediaserver),
|
||||||
@ -214,9 +214,15 @@ def schedule_media_servers_update():
|
|||||||
|
|
||||||
def cleanup_old_media():
|
def cleanup_old_media():
|
||||||
with atomic():
|
with atomic():
|
||||||
for source in Source.objects.filter(delete_old_media=True, days_to_keep__gt=0):
|
for source in Source.objects.filter(delete_old_media=True, days_to_keep__gt=0).iterator(chunk_size=1000):
|
||||||
delta = timezone.now() - timedelta(days=source.days_to_keep)
|
delta = timezone.now() - timedelta(days=source.days_to_keep)
|
||||||
for media in source.media_source.filter(downloaded=True, download_date__lt=delta):
|
mqs = source.media_source.defer(
|
||||||
|
'metadata',
|
||||||
|
).filter(
|
||||||
|
downloaded=True,
|
||||||
|
download_date__lt=delta,
|
||||||
|
)
|
||||||
|
for media in mqs.iterator(chunk_size=1000):
|
||||||
log.info(f'Deleting expired media: {source} / {media} '
|
log.info(f'Deleting expired media: {source} / {media} '
|
||||||
f'(now older than {source.days_to_keep} days / '
|
f'(now older than {source.days_to_keep} days / '
|
||||||
f'download_date before {delta})')
|
f'download_date before {delta})')
|
||||||
@ -230,8 +236,12 @@ def cleanup_removed_media(source, videos):
|
|||||||
if not source.delete_removed_media:
|
if not source.delete_removed_media:
|
||||||
return
|
return
|
||||||
log.info(f'Cleaning up media no longer in source: {source}')
|
log.info(f'Cleaning up media no longer in source: {source}')
|
||||||
media_objects = Media.objects.filter(source=source)
|
mqs = Media.objects.defer(
|
||||||
for media in media_objects:
|
'metadata',
|
||||||
|
).filter(
|
||||||
|
source=source,
|
||||||
|
)
|
||||||
|
for media in mqs.iterator(chunk_size=1000):
|
||||||
matching_source_item = [video['id'] for video in videos if video['id'] == media.key]
|
matching_source_item = [video['id'] for video in videos if video['id'] == media.key]
|
||||||
if not matching_source_item:
|
if not matching_source_item:
|
||||||
log.info(f'{media.name} is no longer in source, removing')
|
log.info(f'{media.name} is no longer in source, removing')
|
||||||
@ -766,13 +776,12 @@ def rename_all_media_for_source(source_id):
|
|||||||
if not create_rename_tasks:
|
if not create_rename_tasks:
|
||||||
return
|
return
|
||||||
mqs = Media.objects.all().defer(
|
mqs = Media.objects.all().defer(
|
||||||
'metadata',
|
|
||||||
'thumb',
|
'thumb',
|
||||||
).filter(
|
).filter(
|
||||||
source=source,
|
source=source,
|
||||||
downloaded=True,
|
downloaded=True,
|
||||||
)
|
)
|
||||||
for media in mqs:
|
for media in mqs.iterator(chunk_size=1000):
|
||||||
with atomic():
|
with atomic():
|
||||||
media.rename_files()
|
media.rename_files()
|
||||||
|
|
||||||
@ -816,7 +825,7 @@ def delete_all_media_for_source(source_id, source_name):
|
|||||||
).filter(
|
).filter(
|
||||||
source=source or source_id,
|
source=source or source_id,
|
||||||
)
|
)
|
||||||
for media in mqs:
|
for media in mqs.iterator(chunk_size=1000):
|
||||||
log.info(f'Deleting media for source: {source_name} item: {media.name}')
|
log.info(f'Deleting media for source: {source_name} item: {media.name}')
|
||||||
with atomic():
|
with atomic():
|
||||||
media.delete()
|
media.delete()
|
||||||
|
Loading…
Reference in New Issue
Block a user