From 583863cb7c6b2750b4f696e729a793dffa8b5561 Mon Sep 17 00:00:00 2001 From: tcely Date: Wed, 29 Jan 2025 22:51:53 -0500 Subject: [PATCH] Do not delete tasks that are currently running --- tubesync/sync/tasks.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/tubesync/sync/tasks.py b/tubesync/sync/tasks.py index d677df40..0a2e304d 100644 --- a/tubesync/sync/tasks.py +++ b/tubesync/sync/tasks.py @@ -127,11 +127,18 @@ def get_media_metadata_task(media_id): return False def delete_task_by_source(task_name, source_id): - return Task.objects.filter(task_name=task_name, queue=str(source_id)).delete() + now = timezone.now() + unlocked = Task.objects.unlocked(now) + return unlocked.filter(task_name=task_name, queue=str(source_id)).delete() def delete_task_by_media(task_name, args): - return Task.objects.drop_task(task_name, args=args) + max_run_time = getattr(settings, 'MAX_RUN_TIME', 3600) + now = timezone.now() + expires_at = now - timedelta(seconds=max_run_time) + task_qs = Task.objects.get_task(task_name, args=args) + unlocked = task_qs.filter(locked_by=None) | task_qs.filter(locked_at__lt=expires_at) + return unlocked.delete() def cleanup_completed_tasks():