2013-09-03 4 views
1

Кто-нибудь знает, как определить, работает ли экземпляр автора как основной экземпляр?В сервлет CQ5 Sling, как вы определяете, является ли сервер хозяином в кластере?

Мы запускаем процесс проглатывания в виде кварцевого сервлета, и поскольку он только записывается, мы не хотим, чтобы какой-либо из подчиненных узлов выполнял скрипт.

Кажется, что мы можем узнать через org.apache.sling.discovery.InstanceDescription.isLeader() относительно того, является ли текущий экземпляр главным, однако, кажется, интересно получить текущий экземпляр класса.

Если я иду @Reference частное открытие DiscoveryService;

Ссылка не удовлетворена.

Любые другие предложения о том, как я могу получить экземпляр описания?

+0

Какую версию CQ вы работаете, v5.6? – diffa

ответ

0

Вы можете сделать это следующим образом

@Reference 
private SlingRepository repository; 

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

Спасибо. Я тоже нашел это, и так мы идем. Есть также способ сделать это с событиями, но он, похоже, не работает для меня под 5.6 –