def _update_job_part(self, job_part): partition_id = job_part.partition_id if partition_id not in self._job_part_map or \ self._job_part_map[partition_id] != job_part: self._job_part_map[partition_id] = None kvstore_key = common.portal_job_part_kvstore_key( self._portal_name, job_part.job_id, partition_id) data = text_format.MessageToString(job_part) self._kvstore.set_data(kvstore_key, data) self._job_part_map[partition_id] = job_part
def _sync_job_part(self, job_id, partition_id): if partition_id not in self._job_part_map or \ self._job_part_map[partition_id] is None or \ self._job_part_map[partition_id].job_id != job_id: kvstore_key = common.portal_job_part_kvstore_key( self._portal_name, job_id, partition_id) data = self._kvstore.get_data(kvstore_key) if data is None: self._job_part_map[partition_id] = dp_pb.PortalJobPart( job_id=job_id, rank_id=-1, partition_id=partition_id) else: self._job_part_map[partition_id] = \ text_format.Parse(data, dp_pb.PortalJobPart()) return self._job_part_map[partition_id]