@Override protected void handleEvent(SubscribeChangeEvent event) { logger.info("Resubscribe change listener to path: " + event.path + ", for listener: " + event.listener + ", watchChild: " + event.watchChild); try { if (event.handler.isReady()) { event.handler.subscribeForChanges(event.callbackType, event.path, event.watchChild); } else { logger.info( "CallbackHandler is not ready, stop subscribing changes listener to path: " + event.path + ", for listener: " + event.listener + ", watchChild: " + event.watchChild); } } catch (Exception e) { logger.error("Failed to resubscribe change to path: " + event.path + " for listener " + event.listener, e); } } };
@Override protected void handleEvent(SubscribeChangeEvent event) { logger.info("Resubscribe change listener to path: " + event.path + ", for listener: " + event.listener + ", watchChild: " + event.watchChild); try { if (event.handler.isReady()) { event.handler.subscribeForChanges(event.callbackType, event.path, event.watchChild); } else { logger.info( "CallbackHandler is not ready, stop subscribing changes listener to path: " + event.path + ", for listener: " + event.listener + ", watchChild: " + event.watchChild); } } catch (Exception e) { logger.error("Failed to resubscribe change to path: " + event.path + " for listener " + event.listener, e); } } };
public void enqueueTask(NotificationContext changeContext) throws Exception { //async mode only applicable to CALLBACK from ZK, During INIT and FINALIZE invoke the callback's immediately. if (_batchModeEnabled && changeContext.getType() == NotificationContext.Type.CALLBACK) { logger.debug("Enqueuing callback"); if (!isReady()) { logger.info( "CallbackHandler is not ready, ignore change callback from path: " + _path + ", for listener: " + _listener); } else { _batchCallbackProcessor.queueEvent(changeContext.getType(), changeContext); } } else { invoke(changeContext); } if (_monitor != null) { _monitor.increaseCallbackUnbatchedCounters(); } }
public void enqueueTask(NotificationContext changeContext) throws Exception { //async mode only applicable to CALLBACK from ZK, During INIT and FINALIZE invoke the callback's immediately. if (_batchModeEnabled && changeContext.getType() == NotificationContext.Type.CALLBACK) { logger.debug("Enqueuing callback"); if (!isReady()) { logger.info( "CallbackHandler is not ready, ignore change callback from path: " + _path + ", for listener: " + _listener); } else { synchronized (this) { if (_batchCallbackProcessor != null) { _batchCallbackProcessor.queueEvent(changeContext.getType(), changeContext); } else { throw new HelixException("Failed to process callback in batch mode. Batch Callback Processor does not exist."); } } } } else { invoke(changeContext); } if (_monitor != null) { _monitor.increaseCallbackUnbatchedCounters(); } }