1import datetime
2
3from plain.chores import register_chore
4from plain.runtime import settings
5from plain.utils import timezone
6
7from .models import JobResult
8
9
10@register_chore("worker")
11def clear_completed():
12 """Delete all completed job results in all queues."""
13 cutoff = timezone.now() - datetime.timedelta(
14 seconds=settings.WORKER_JOBS_CLEARABLE_AFTER
15 )
16 results = JobResult.objects.filter(created_at__lt=cutoff).delete()
17 return f"{results[0]} jobs deleted"