All checks were successful
Build-Release-Image / Build-Image (linux/arm64) (push) Successful in 3m40s
Build-Release-Image / Build-Image (linux/amd64) (push) Successful in 4m7s
Build-Release-Image / Merge-Images (push) Successful in 22s
Build-Release-Image / Create-Release (push) Successful in 15s
Build-Release-Image / Notify (push) Successful in 17s
25 lines
661 B
Python
25 lines
661 B
Python
import arrow
|
|
from sqlalchemy import or_, and_
|
|
|
|
from app import config
|
|
from app.db import Session
|
|
from app.log import LOG
|
|
from app.models import Job, JobState
|
|
|
|
|
|
def cleanup_old_jobs(oldest_allowed: arrow.Arrow):
|
|
LOG.i(f"Deleting jobs older than {oldest_allowed}")
|
|
count = Job.filter(
|
|
or_(
|
|
Job.state == JobState.done.value,
|
|
Job.state == JobState.error.value,
|
|
and_(
|
|
Job.state == JobState.taken.value,
|
|
Job.attempts >= config.JOB_MAX_ATTEMPTS,
|
|
),
|
|
),
|
|
Job.updated_at < oldest_allowed,
|
|
).delete()
|
|
Session.commit()
|
|
LOG.i(f"Deleted {count} jobs")
|