Skip to content
Snippets Groups Projects
Select Git revision
  • 54c25e659002c909356cb4f9b5f847f891f84faa
  • jk default protected
2 results

display.h

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)