Skip to content
Snippets Groups Projects
Select Git revision
  • 4b2f6d8ef7519d5eded20fc3f24659c7bb152be0
  • devel default
  • master
  • fo
  • jirka/typing
  • fo-base
  • mj/submit-images
  • jk/issue-96
  • jk/issue-196
  • honza/add-contestant
  • honza/mr7
  • honza/mrf
  • honza/mrd
  • honza/mra
  • honza/mr6
  • honza/submit-images
  • honza/kolo-vs-soutez
  • jh-stress-test-wip
  • shorten-schools
19 results

run-jobs

Blame
  • 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)