Assign task queues based on resources used

This commit is contained in:
tcely 2025-04-06 18:42:07 -04:00 committed by GitHub
parent 7ac5f2c148
commit 0b92ae0500
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -229,7 +229,7 @@ def cleanup_removed_media(source, videos):
schedule_media_servers_update()
@background(schedule=dict(priority=10, run_at=30), remove_existing_tasks=True)
@background(schedule=dict(priority=10, run_at=30), queue='network', remove_existing_tasks=True)
def index_source_task(source_id):
'''
Indexes media available from a Source object.
@ -316,7 +316,7 @@ def index_source_task(source_id):
cleanup_removed_media(source, videos)
@background(schedule=dict(priority=0, run_at=0))
@background(schedule=dict(priority=0, run_at=0), queue='filesystem')
def check_source_directory_exists(source_id):
'''
Checks the output directory for a source exists and is writable, if it does
@ -335,7 +335,7 @@ def check_source_directory_exists(source_id):
source.make_directory()
@background(schedule=dict(priority=5, run_at=10))
@background(schedule=dict(priority=5, run_at=10), queue='network')
def download_source_images(source_id):
'''
Downloads an image and save it as a local thumbnail attached to a
@ -385,7 +385,7 @@ def download_source_images(source_id):
log.info(f'Thumbnail downloaded for source with ID: {source_id} / {source}')
@background(schedule=dict(priority=20, run_at=60), remove_existing_tasks=True)
@background(schedule=dict(priority=20, run_at=60), queue='network', remove_existing_tasks=True)
def download_media_metadata(media_id):
'''
Downloads the metadata for a media item.
@ -472,7 +472,7 @@ def download_media_metadata(media_id):
f'{source} / {media}: {media_id}')
@background(schedule=dict(priority=15, run_at=10), remove_existing_tasks=True)
@background(schedule=dict(priority=15, run_at=10), queue='network', remove_existing_tasks=True)
def download_media_thumbnail(media_id, url):
'''
Downloads an image from a URL and save it as a local thumbnail attached to a
@ -510,7 +510,7 @@ def download_media_thumbnail(media_id, url):
return True
@background(schedule=dict(priority=15, run_at=60), remove_existing_tasks=True)
@background(schedule=dict(priority=15, run_at=60), queue='network', remove_existing_tasks=True)
def download_media(media_id):
'''
Downloads the media to disk and attaches it to the Media instance.
@ -632,7 +632,7 @@ def download_media(media_id):
raise DownloadFailedException(err)
@background(schedule=dict(priority=0, run_at=30), remove_existing_tasks=True)
@background(schedule=dict(priority=0, run_at=30), queue='network', remove_existing_tasks=True)
def rescan_media_server(mediaserver_id):
'''
Attempts to request a media rescan on a remote media server.
@ -647,7 +647,7 @@ def rescan_media_server(mediaserver_id):
mediaserver.update()
@background(schedule=dict(priority=25, run_at=600), remove_existing_tasks=True)
@background(schedule=dict(priority=25, run_at=600), queue='network', remove_existing_tasks=True)
def save_all_media_for_source(source_id):
'''
Iterates all media items linked to a source and saves them to
@ -704,7 +704,7 @@ def save_all_media_for_source(source_id):
update_task_status(task, None)
@background(schedule=dict(priority=20, run_at=60), remove_existing_tasks=True)
@background(schedule=dict(priority=20, run_at=60), queue='filesystem', remove_existing_tasks=True)
def rename_media(media_id):
try:
media = Media.objects.defer('metadata', 'thumb').get(pk=media_id)
@ -713,7 +713,7 @@ def rename_media(media_id):
media.rename_files()
@background(schedule=dict(priority=20, run_at=300), remove_existing_tasks=True)
@background(schedule=dict(priority=20, run_at=300), queue='filesystem', remove_existing_tasks=True)
@atomic(durable=True)
def rename_all_media_for_source(source_id):
try:
@ -746,7 +746,7 @@ def rename_all_media_for_source(source_id):
media.rename_files()
@background(schedule=dict(priority=0, run_at=60), remove_existing_tasks=True)
@background(schedule=dict(priority=0, run_at=60), queue='database', remove_existing_tasks=True)
def wait_for_media_premiere(media_id):
hours = lambda td: 1+int((24*td.days)+(td.seconds/(60*60)))
@ -770,7 +770,7 @@ def wait_for_media_premiere(media_id):
if task:
update_task_status(task, f'available in {hours(media.published - now)} hours')
@background(schedule=dict(priority=1, run_at=300), remove_existing_tasks=False)
@background(schedule=dict(priority=1, run_at=300), queue='filesystem', remove_existing_tasks=False)
def delete_all_media_for_source(source_id, source_name):
source = None
try: