Finalize#

YR.Finalize()#

包名: org.yuanrong.api

public class YR extends YRCall#

接口说明#

public static synchronized void finalize(String ctx) throws YRException#

openYuanrong 终止接口释放资源,包括创建的函数实例,以防止资源泄漏。

try {
    ClientInfo info = YR.init(conf);
    String ctx = info.getContext();
    InstanceHandler instanceHandler = YR.instance(YrlibHandler.MyYRApp::new).invoke();
    ObjectRef ref1 = instanceHandler.function(MyYRApp::longCall).invoke();
    String res = (String)YR.get(ref1, 10000);
    System.out.println(res);
    YR.finalize(ctx);
} catch (YRException exp) {
    System.out.println(exp.getMessage());
}
  • 参数:

    • ctx - 可选参数:要终止的租户上下文。(可以通过 YR.init 的返回值获得)。

  • 抛出:

    • YRException - 在调用 init 之前调用 finalize,或者在租户上下文未初始化时传递租户上下文参数,都会抛出此异常。

public static void Finalize() throws YRException#

openYuanrong 终止接口释放资源,包括创建的函数实例,以防止资源泄漏。

public static class Counter {
    private int value = 0;

    public int increment() {
        this.value += 1;
        return this.value;
    }

    public static int functionWithAnArgument(int value) {
        return value + 1;
    }
}

public static class MyYRApp {
    public static int myFunction() {
        return 1;
    }

    public static int functionWithAnArgument(int value) {
        return value + 1;
    }
}
// 实例样例
InstanceHandler counter = YR.instance(Counter::new).invoke();
ObjectRef objectRef = counter.function(Counter::increment).invoke();
System.out.println(YR.get(objectRef, 3000));

// 函数样例
ObjectRef res = YR.function(MyYRApp::myFunction).invoke();
System.out.println(YR.get(res, 3000));
ObjectRef objRef2 = YR.function(MyYRApp::functionWithAnArgument).invoke(1);
System.out.println(YR.get(objRef2, 3000));
YR.Finalize();
  • 抛出:

    • YRException - 在调用 init 之前调用 Finalize,或者在租户上下文未初始化时传递租户上下文参数,都会抛出此异常。