在CQ5 Sling servlet中,如何检测服务器是否是群集中的主服务器?

时间:2013-09-03 01:24:41

标签: cq5 sling aem

有谁知道如何检测作者实例是否作为主实例运行?

我们正在运行一个摄取过程作为Quartz servlet,因为它只是写入,我们不希望任何从属节点执行脚本。

似乎我们可以通过org.apache.sling.discovery.InstanceDescription.isLeader()了解当前实例是否是主实例,但是,获取当前的InstanceDescription似乎很有趣。

如果我去@Reference     私人DiscoveryService发现;

引用不满意。

关于如何获取InstanceDescription的任何其他建议?

1 个答案:

答案 0 :(得分:0)

您可以按照以下方式执行此操作

@Reference
private SlingRepository repository;

public boolean isMasterRepository(){
    final String isMaster = repository.getDescriptor("crx.cluster.master");
    return StringUtils.isNotBlank(isMaster) && Boolean.parseBoolean(isMaster);
}