更新时间:2023-05-04 GMT+08:00
java模板
有状态函数:
// funcName: javastateful import com.huawei.function.Function; import com.huawei.function.runtime.StateReader; import com.huawei.services.runtime.Context; public class JavaHandler implements StateReader<Object, Counter> { public Object handleRequest(event Object, Context context) { // process req State state = (State)context.getState(); // process state state.count++; context.setState(state); // function object Function func = new Function(context); // persistent state func.saveState(); return state; } // 有状态函数必须实现初始化接口 public State initState(Object event, Context context) { State state = new State(0); // # 初始化时,set State context.setState(state); return state; } } class State { int count; State(int cnt) { this.counter = cnt; } }
主调函数:
// funcName: javacaller import com.google.gson.JsonObject; import com.huawei.function.Function; import com.huawei.function.runtime.StateReader; import com.huawei.services.runtime.Context; import com.huawei.function.ObjectRef; public class JavaHandler { // 初始化,调用new Function instanceName为test1 为javastateful函数初始化状态路由 public String newStateRouter(Object event, Context context) { Function func = new Function(context, "javastateful", "test1"); String instanceID = func.getInstanceID(); return instanceID; } // 绑定已创建的状态路由 public String bindStateRouter(Object event, Context context) { Function func = new Function(context); // bind func.getInstance("javastateful", "test1"); String instanceID = func.getInstanceID(); return instanceID; } // 绑定路由后进行调用 public Object invoke(Object event, Context context) { Function func = new Function(context); // bind func.getInstance("javastateful", "test1"); ObjectRef<Object> obj = func.invoke("{\"key\":\"value\"}"); // 通过object对象获取执行结果 Object result = obj.get(); return result; } // 删除状态实例 public Object terminate(Object event, Context context) { Function func = new Function(context); // bind func.getInstance("javastateful", "test1"); ObjectRef<Object> obj = func.terminate(); // 通过object对象获取执行结果 Object result = obj.get(); return result; } }
父主题: Java