Group#

包名:org.yuanrong

public class Group#

类 Group 是 openYuanrong 成组实例调度类,用于完成成组实例的生命周期管理,包括成组实例的创建及销毁。

接口说明#

public Group()#

Group 的构造函数。

public Group(String name, GroupOptions opts)#

Group 的构造函数。

  • 参数:

    • name (String) - 实例成组调度类名称,名称不能重复。

    • opts (GroupOptions) - 实例成组调度生命周期参数。

public void invoke() throws YRException#

成组调度实例 invoke 接口,成组实例创建。

Group g = new Group();
g.setGroupName("groupName");
GroupOptions gOpts = new GroupOptions();
gOpts.setTimeout(60);
g.setGroupOpts(gOpts);
InvokeOptions opts = new InvokeOptions();
opts.setGroupName("groupName");
InstanceHandler res1 = YR.instance(MyClass::new).options(opts).invoke();
InstanceHandler res2 = YR.instance(MyClass::new).options(opts).invoke();
g.invoke();

Note

1、单个 group 最多成组创建 256 个实例。

2、并发创建最多支持 12 个 group ,每个 group 最多成组创建 256 个实例。

3、invoke() 接口在 NamedInstance::Export() 之后调用会导致当前线程卡住。

4、不调用 invoke() 接口,直接向有状态函数实例发起函数请求并 get 结果会导致当前线程卡住。

5、重复调用 invoke() 接口会导致异常抛出。

6、group 内实例不支持指定生命周期为 detached 。

  • 抛出:

    • YRException - 成组实例遵守 Fate-sharing 原则,当某个实例创建失败后,接口抛异常,全部实例创建失败。

public void terminate() throws YRException#

成组调度实例 terminate 接口,删除成组实例创建。

Group g = new Group();
g.setGroupName("groupName");
InvokeOptions opts = new InvokeOptions();
opts.setGroupName("groupName");
InstanceHandler res1 = YR.instance(MyClass::new).options(opts).invoke();
InstanceHandler res2 = YR.instance(MyClass::new).options(opts).invoke();
g.invoke();
g.terminate();
  • 抛出:

    • YRException - 统一抛出的异常。

public void Wait() throws YRException#

成组调度实例 Wait 接口,等待成组实例创建完成。

  • 抛出:

    • YRException - 成组实例遵守 Fate-sharing 原则,当某个实例创建失败后,接口抛异常,全部实例创建失败。wait 超时后接口抛异常。

私有成员#

private String groupName

实例成组调度类名称。

private GroupOptions groupOpts

实例成组调度生命周期参数。

public class GroupOptions#

类 GroupOptions 是 openYuanrong 成组实例调度类的一个参数,用于定义实例成组调度生命周期参数,包括内核资源不足时重调度超时时间等。

接口说明#

public GroupOptions()#

GroupOptions 的构造函数。

public GroupOptions(int timeout)#

GroupOptions 的构造函数。

  • 参数:

    • timeout (int) - openYuanrong 内核资源不足重调度超时时间。

public GroupOptions(int timeout, boolean sameLifecycle)#

GroupOptions 的构造函数。

  • 参数:

    • timeout (int) - openYuanrong 内核资源不足重调度超时时间。

    • sameLifecycle (boolean) - 是否为分组实例启用 fate-sharing 配置。

私有成员#

private int timeout

openYuanrong 内核资源不足重调度超时时间,单位秒, -1 表示内核无限重试调度,其余情形赋值小于 0 抛异常。

private boolean sameLifecycle = true

是否为分组实例启用 fate-sharing 配置。true 表示组中的实例将一起创建和销毁,false 表示实例可以拥有独立的生命周期。默认为 true