Select Git revision
-
Martin Mareš authoredMartin Mareš authored
check-jobs 923 B
#!/usr/bin/env python3
import argparse
import datetime
import sys
import mo
import mo.db as db
from mo.util import init_standalone
parser = argparse.ArgumentParser(description='Varuje, pokud existují dlouho nevyřízené joby')
parser.add_argument('-t', '--max-time', type=int, metavar='MIN', required=True, help='Po překročení této doby varujeme')
args = parser.parse_args()
init_standalone()
sess = db.get_session()
jobs = (sess.query(db.Job)
.filter(db.Job.state.not_in([db.JobState.done, db.JobState.failed, db.JobState.internal_error, db.JobState.waiting]))
.filter(db.Job.created_at < mo.now - datetime.timedelta(minutes=args.max_time))
.all())
if jobs:
for job in jobs:
age = (mo.now - job.created_at) // datetime.timedelta(minutes=1)
print(f'Pozor: Nevyřízený job #{job.job_id}: stáří {age} min, stav {job.state.name}', file=sys.stderr)
sys.exit(1)