Added new_create_subjob method

This commit is contained in:
Brett Williams
2023-10-25 15:07:17 -05:00
parent ba81be7088
commit 1d44716a1f

View File

@@ -309,16 +309,31 @@ class DistributedJobManager:
# submission_results.items()] # todo: fix this # submission_results.items()] # todo: fix this
@staticmethod @staticmethod
def __create_subjob(job_data, local_hostname, project_path, server_data, server_hostname, worker): def new_create_subjob(parent_job_id, remote_hostname, start_frame, end_frame):
subjob = job_data.copy() """
subjob['name'] = f"{worker.name}[{server_data['frame_range'][0]}-{server_data['frame_range'][-1]}]" Create and post a subjob to a remote render server.
subjob['parent'] = f"{worker.id}@{local_hostname}"
subjob['start_frame'] = server_data['frame_range'][0] Parameters:
subjob['end_frame'] = server_data['frame_range'][-1] - parent_job_id (str): ID of the parent job.
logger.debug(f"Posting subjob with frames {subjob['start_frame']}-" - remote_hostname (str): Remote server's hostname/address.
f"{subjob['end_frame']} to {server_hostname}") - start_frame (int): Starting frame of the subjob.
post_results = RenderServerProxy(server_hostname).post_job_to_server( - end_frame (int): Ending frame of the subjob.
file_path=project_path, job_list=[subjob])
Example:
new_create_subjob('parent_job_123', 'remote-server.example.com', 1, 100)
"""
logger.info(f"parentID: {parent_job_id}")
parent_job = RenderQueue.job_with_id(parent_job_id)
subjob_data = {'renderer': parent_job.engine.name(), 'input_path': parent_job.input_path,
'args': parent_job.args, 'output_path': parent_job.output_path,
'engine_version': parent_job.renderer_version, 'start_frame': start_frame,
'end_frame': end_frame, 'parent': f"{parent_job_id}@{socket.gethostname()}"}
logger.debug(f"new subjob data: {subjob_data}")
logger.debug(f"Creating subjob {start_frame}-{end_frame} for {remote_hostname}")
post_results = RenderServerProxy(remote_hostname).post_job_to_server(
file_path=parent_job.input_path, job_list=[subjob_data])
return post_results return post_results
@staticmethod @staticmethod