def cleanup()

in nucleus/base/tasks.py [0:0]


def cleanup():
    from .models import GithubLog  # avoid circular import

    # requeue any that are unacknowledged after an hour
    unacked = GithubLog.objects.filter(ack=False, fail_count__lt=MAX_FAILS, created__lt=now() - timedelta(hours=1))
    count = 0
    for ghl in unacked:
        ghl.fail_count += 1
        ghl.save()
        tasks.schedule(save_to_github, ghl.pk)
        count += 1

    log.info(f"scheduled {count} GithubLog entries for trying again")

    # delete acknowledged entries after a week
    acked = GithubLog.objects.filter(ack=True, created__lt=now() - timedelta(weeks=1))
    num_deleted, _ = acked.delete()
    log.info(f"deleted {num_deleted} GithubLog entries")