本文整理汇总了Python中job.Job.query_jobnames方法的典型用法代码示例。如果您正苦于以下问题:Python Job.query_jobnames方法的具体用法?Python Job.query_jobnames怎么用?Python Job.query_jobnames使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类job.Job
的用法示例。
在下文中一共展示了Job.query_jobnames方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: job_run
# 需要导入模块: from job import Job [as 别名]
# 或者: from job.Job import query_jobnames [as 别名]
def job_run(self, job):
"""Create and queue tasks from job object"""
# check job name
if job["name"] in DrQueueJob.query_jobnames():
raise ValueError("Job name %s is already used!" % job["name"])
return False
# run job only on matching os
os_list = self.query_engines_of_os(job["limits"]["os"])
# run job only on matching minram
minram_list = self.query_engines_with_minram(job["limits"]["minram"])
# run job only on matching mincores
mincores_list = self.query_engines_with_mincores(job["limits"]["mincores"])
# check pool members
pool_list = self.query_engines_of_pool(job["limits"]["pool"])
# check limits
self.match_all_limits(os_list, minram_list, mincores_list, pool_list)
# save job in database
job_id = DrQueueJob.store_db(job)
# job_id from db is be used as session name
self.ip_client.session.session = str(job_id)
# set owner of job
self.ip_client.session.username = job["owner"]
# set number of retries for each task
self.lbview.retries = job["retries"]
# depend on another job (it's tasks)
if ("depend" in job["limits"]) and (job["limits"]["depend"] != None):
depend_job = self.query_job_by_name(job["limits"]["depend"])
depend_tasks = self.query_task_list(depend_job["_id"])
task_ids = []
for task in depend_tasks:
task_ids.append(task["msg_id"])
self.lbview.after = task_ids
# check frame numbers
if not (job["startframe"] >= 1):
raise ValueError("Invalid value for startframe. Has to be equal or greater than 1.")
return False
if not (job["endframe"] >= 1):
raise ValueError("Invalid value for endframe. Has to be equal or greater than 1.")
return False
if not (job["endframe"] >= job["startframe"]):
raise ValueError("Invalid value for endframe. Has be to equal or greater than startframe.")
return False
if job["endframe"] > job["startframe"]:
if not (job["endframe"] - job["startframe"] >= job["blocksize"]):
raise ValueError("Invalid value for blocksize. Has to be equal or lower than endframe-startframe.")
return False
if job["endframe"] == job["startframe"]:
if job["blocksize"] != 1:
raise ValueError("Invalid value for blocksize. Has to be equal 1 if endframe equals startframe.")
return False
task_frames = range(job["startframe"], job["endframe"] + 1, job["blocksize"])
for x in task_frames:
# prepare script input
env_dict = {
"DRQUEUE_FRAME": x,
"DRQUEUE_BLOCKSIZE": job["blocksize"],
"DRQUEUE_ENDFRAME": job["endframe"],
"DRQUEUE_SCENEFILE": job["scenefile"],
"DRQUEUE_LOGFILE": job["name"] + "-" + str(x) + "_" + str(x + job["blocksize"] - 1) + ".log",
}
# optional elements
if "renderdir" in job:
env_dict["DRQUEUE_RENDERDIR"] = job["renderdir"]
if "projectdir" in job:
env_dict["DRQUEUE_PROJECTDIR"] = job["projectdir"]
if "configdir" in job:
env_dict["DRQUEUE_CONFIGDIR"] = job["configdir"]
if "imagefile" in job:
env_dict["DRQUEUE_IMAGEFILE"] = job["imagefile"]
if "precommand" in job:
env_dict["DRQUEUE_PRECOMMAND"] = job["precommand"]
if "renderer" in job:
env_dict["DRQUEUE_RENDERER"] = job["renderer"]
if "fileformat" in job:
env_dict["DRQUEUE_FILEFORMAT"] = job["fileformat"]
if "postcommand" in job:
env_dict["DRQUEUE_POSTCOMMAND"] = job["postcommand"]
if "viewcommand" in job:
env_dict["DRQUEUE_VIEWCOMMAND"] = job["viewcommand"]
if "worldfile" in job:
env_dict["DRQUEUE_WORLDFILE"] = job["worldfile"]
if "terrainfile" in job:
env_dict["DRQUEUE_TERRAINFILE"] = job["terrainfile"]
if "composition" in job:
env_dict["DRQUEUE_COMPOSITION"] = job["composition"]
if "camera" in job:
#.........这里部分代码省略.........