Skip to content
Snippets Groups Projects
Commit 42a30367 authored by Martin Mareš's avatar Martin Mareš
Browse files

check-jobs: Kontrola visících jobů pro spouštění z crona

parent 9f6b4ad0
Branches
No related tags found
No related merge requests found
#!/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]))
.filter(db.Job.created_at < mo.now - datetime.timedelta(minutes=args.max_time))
.all())
if jobs:
for job in jobs:
print(f'Pozor: Nevyřízený job #{job.job_id} (stav {job.state}, start {job.created_at})', file=sys.stderr)
sys.exit(1)
...@@ -9,6 +9,7 @@ setuptools.setup( ...@@ -9,6 +9,7 @@ setuptools.setup(
packages=['mo', 'mo/ext', 'mo/jobs', 'mo/web'], packages=['mo', 'mo/ext', 'mo/jobs', 'mo/web'],
scripts=[ scripts=[
'bin/add-role', 'bin/add-role',
'bin/check-jobs',
'bin/create-contests', 'bin/create-contests',
'bin/create-round', 'bin/create-round',
'bin/create-tasks', 'bin/create-tasks',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment