job_tracking.py 文件源码

python
阅读 137 收藏 0 点赞 0 评论 0

项目:encore 作者: statgen 项目源码 文件源码
def update_job_statuses(db, jobs):
        # job_names_param = ",".join("gasp_" + x.id for x in jobs)
        p = subprocess.Popen(["/usr/cluster/bin/sacct", "-u", pwd.getpwuid(os.getuid())[0], "--format", "jobid,state,exitcode,jobname", "--noheader", "-P", "-S", (datetime.date.today() - datetime.timedelta(days=30)).strftime("%Y-%m-%d")], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        squeue_out, squeue_err = p.communicate()

        fake_data = """29646434            PENDING             0
29646435            COMPLETED             0
"""

        # only keep last record for jobs that were re-run
        slurm_jobs_found = dict()
        for line in squeue_out.rstrip().split("\n"):
            if line:
                slurm_job = line.strip().split("|")
                # strip off "gasp_"
                slurm_jobs_found[slurm_job[3][5:]] = slurm_job
        for slurm_job in slurm_jobs_found.values():
            for j in jobs:
                if slurm_job[3][5:] == j.id:
                    Tracker.update_job_status(db, j, slurm_job[1], slurm_job[2])
                    break
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号