def execute(self, function_context: FunctionContext, input_list: List) -> List: model_name = function_context.node_spec.model.name validated_model = af.get_latest_validated_model_version(model_name) # Deprecate deployed model deployed_model_version = af.get_deployed_model_version(model_name) if deployed_model_version is not None: af.update_model_version( model_name=model_name, model_version=deployed_model_version.version, current_stage=ModelVersionStage.DEPRECATED) af.update_model_version(model_name=model_name, model_version=validated_model.version, current_stage=ModelVersionStage.DEPLOYED) af.send_event(key='START_PREDICTION', value=validated_model.version) print(validated_model.version) # Copy deployed model to deploy_model_dir deployed_model_dir = af.get_artifact_by_name(self.artifact).batch_uri if not os.path.exists(deployed_model_dir): os.makedirs(deployed_model_dir) for file in os.listdir(deployed_model_dir): file_path = os.path.join(deployed_model_dir, file) if os.path.isfile(file_path): os.remove(file_path) elif os.path.isdir(file_path): shutil.rmtree(file_path, True) deployed_model_version = af.get_deployed_model_version(model_name) shutil.copy(deployed_model_version.model_path, deployed_model_dir) return []
def execute(self, function_context: FunctionContext, input_list: List) -> None: for i in range(self.num): time.sleep(self.pre_time) af.send_event(self.key, self.value, self.event_type) time.sleep(self.post_time)