本文整理汇总了Java中org.apache.helix.NotificationContext.getType方法的典型用法代码示例。如果您正苦于以下问题:Java NotificationContext.getType方法的具体用法?Java NotificationContext.getType怎么用?Java NotificationContext.getType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.helix.NotificationContext
的用法示例。
在下文中一共展示了NotificationContext.getType方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: handleEvent
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
@Override
protected void handleEvent(ClusterEvent event) {
NotificationContext changeContext = event.getAttribute(AttributeName.changeContext.name());
// session has expired clean up the routing table
if (changeContext.getType() == NotificationContext.Type.FINALIZE) {
reset();
} else {
// refresh routing table.
HelixManager manager = event.getAttribute(AttributeName.helixmanager.name());
if (manager == null) {
logger.error("HelixManager is null for router update event : " + event);
throw new HelixException("HelixManager is null for router update event.");
}
_dataCache.refresh(manager.getHelixDataAccessor());
refresh(_dataCache.getExternalViews().values(), _dataCache.getInstanceConfigMap().values(),
_dataCache.getLiveInstances().values());
}
}
示例2: subscribeDataChange
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
private void subscribeDataChange(String path, NotificationContext context) {
NotificationContext.Type type = context.getType();
if (type == NotificationContext.Type.INIT || type == NotificationContext.Type.CALLBACK) {
logger.info(
_manager.getInstanceName() + " subscribe data-change. path: " + path + ", listener: "
+ _listener);
_zkClient.subscribeDataChanges(path, this);
} else if (type == NotificationContext.Type.FINALIZE) {
logger.info(
_manager.getInstanceName() + " unsubscribe data-change. path: " + path + ", listener: "
+ _listener);
_zkClient.unsubscribeDataChanges(path, this);
}
}
示例3: queueEvent
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
public void queueEvent(NotificationContext context, ClusterEventType eventType,
HelixConstants.ChangeType changeType) {
ClusterEvent event = new ClusterEvent(_clusterName, eventType);
if (context == null || context.getType() != NotificationContext.Type.CALLBACK) {
_dataCache.requireFullRefresh();
} else {
_dataCache.notifyDataChange(changeType, context.getPathChanged());
}
event.addAttribute(AttributeName.helixmanager.name(), context.getManager());
event.addAttribute(AttributeName.changeContext.name(), context);
queueEvent(event);
}
示例4: enqueueTask
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
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.info("Enqueuing callback");
_queue.put(changeContext);
} else {
invoke(changeContext);
}
if (_monitor != null) {
_monitor.increaseCallbackUnbatchedCounters();
}
}
示例5: subscribeChildChange
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
private void subscribeChildChange(String path, NotificationContext context) {
NotificationContext.Type type = context.getType();
if (type == NotificationContext.Type.INIT || type == NotificationContext.Type.CALLBACK) {
logger.info(
_manager.getInstanceName() + " subscribes child-change. path: " + path + ", listener: "
+ _listener);
_zkClient.subscribeChildChanges(path, this);
} else if (type == NotificationContext.Type.FINALIZE) {
logger.info(
_manager.getInstanceName() + " unsubscribe child-change. path: " + path + ", listener: "
+ _listener);
_zkClient.unsubscribeChildChanges(path, this);
}
}
示例6: onLiveInstanceChange
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
@Override
public void onLiveInstanceChange(List<LiveInstance> liveInstances,
NotificationContext changeContext) {
logger.info("START: Generic GenericClusterController.onLiveInstanceChange() for cluster " + _clusterName);
if (changeContext == null || changeContext.getType() != Type.CALLBACK) {
_cache.requireFullRefresh();
_taskCache.requireFullRefresh();
}
if (liveInstances == null) {
liveInstances = Collections.emptyList();
}
_cache.setLiveInstances(liveInstances);
_taskCache.setLiveInstances(liveInstances);
// Go though the live instance list and make sure that we are observing them
// accordingly. The action is done regardless of the paused flag.
if (changeContext.getType() == NotificationContext.Type.INIT
|| changeContext.getType() == NotificationContext.Type.CALLBACK) {
checkLiveInstancesObservation(liveInstances, changeContext);
} else if (changeContext.getType() == NotificationContext.Type.FINALIZE) {
// on finalize, should remove all message/current-state listeners
logger.info("remove message/current-state listeners. lastSeenInstances: " + _lastSeenInstances
+ ", lastSeenSessions: " + _lastSeenSessions);
liveInstances = Collections.emptyList();
checkLiveInstancesObservation(liveInstances, changeContext);
}
pushToEventQueues(ClusterEventType.LiveInstanceChange, changeContext,
Collections.<String, Object>singletonMap(AttributeName.eventData.name(), liveInstances));
logger.info(
"END: Generic GenericClusterController.onLiveInstanceChange() for cluster " + _clusterName);
}
示例7: onIdealStateChange
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
@Override
@PreFetch(enabled = false)
public void onIdealStateChange(List<IdealState> idealStates, NotificationContext changeContext) {
logger.info(
"START: Generic GenericClusterController.onIdealStateChange() for cluster " + _clusterName);
notifyCaches(changeContext, ChangeType.IDEAL_STATE);
pushToEventQueues(ClusterEventType.IdealStateChange, changeContext,
Collections.<String, Object>emptyMap());
if (changeContext.getType() != Type.FINALIZE) {
checkRebalancingTimer(changeContext.getManager(), idealStates, _cache.getClusterConfig());
}
logger.info("END: GenericClusterController.onIdealStateChange() for cluster " + _clusterName);
}
示例8: notifyCaches
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
private void notifyCaches(NotificationContext context, ChangeType changeType) {
if (context == null || context.getType() != Type.CALLBACK) {
_cache.requireFullRefresh();
_taskCache.requireFullRefresh();
} else {
_cache.notifyDataChange(changeType, context.getPathChanged());
_taskCache.notifyDataChange(changeType, context.getPathChanged());
}
}
示例9: callParticipantCode
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
private void callParticipantCode(NotificationContext context) {
// since ZkClient.unsubscribe() does not immediately remove listeners
// from zk, it is possible that two listeners exist when leadership transfers
// therefore, double check to make sure only one participant invokes the code
if (context.getType() == Type.CALLBACK) {
HelixManager manager = context.getManager();
// DataAccessor accessor = manager.getDataAccessor();
HelixDataAccessor accessor = manager.getHelixDataAccessor();
Builder keyBuilder = accessor.keyBuilder();
String instance = manager.getInstanceName();
String sessionId = manager.getSessionId();
// get resource name from partition key: "PARTICIPANT_LEADER_XXX_0"
String resourceName = _partitionKey.substring(0, _partitionKey.lastIndexOf('_'));
CurrentState curState =
accessor.getProperty(keyBuilder.currentState(instance, sessionId, resourceName));
if (curState == null) {
return;
}
String state = curState.getState(_partitionKey);
if (state == null || !state.equalsIgnoreCase("LEADER")) {
return;
}
}
try {
_callback.onCallback(context);
} catch (Exception e) {
LOG.error("Error invoking callback:" + _callback, e);
}
}
示例10: onExternalViewChange
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
@Override
public void onExternalViewChange(List<ExternalView> externalViewList,
NotificationContext changeContext) {
if (changeContext.getType() == Type.CALLBACK) {
cbCnt++;
}
}
示例11: onCallback
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
@Override
public void onCallback(NotificationContext context) {
HelixManager manager = context.getManager();
Type type = context.getType();
_isCallbackInvoked = true;
// System.out.println(type + ": TestCallback invoked on " + manager.getInstanceName());
}
示例12: setupWatcher
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
private void setupWatcher() throws Exception {
LiveInstanceChangeListener listener = new LiveInstanceChangeListener() {
@Override
public void onLiveInstanceChange(List<LiveInstance> liveInstances,
NotificationContext changeContext) {
if (changeContext.getType() != NotificationContext.Type.FINALIZE) {
refreshCache();
}
}
};
admin.addLiveInstanceChangeListener(listener);
}
示例13: onControllerChange
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
@Override
public void onControllerChange(NotificationContext changeContext) {
logger.info("START: GenericClusterController.onControllerChange() for cluster " + _clusterName);
_cache.requireFullRefresh();
_taskCache.requireFullRefresh();
if (changeContext != null && changeContext.getType() == Type.FINALIZE) {
logger.info("GenericClusterController.onControllerChange() FINALIZE for cluster " + _clusterName);
return;
}
HelixDataAccessor accessor = changeContext.getManager().getHelixDataAccessor();
// double check if this controller is the leader
Builder keyBuilder = accessor.keyBuilder();
LiveInstance leader = accessor.getProperty(keyBuilder.controllerLeader());
if (leader == null) {
logger
.warn("No controller exists for cluster:" + changeContext.getManager().getClusterName());
return;
} else {
String leaderName = leader.getInstanceName();
String instanceName = changeContext.getManager().getInstanceName();
if (leaderName == null || !leaderName.equals(instanceName)) {
logger.warn("leader name does NOT match, my name: " + instanceName + ", leader: " + leader);
return;
}
}
PauseSignal pauseSignal = accessor.getProperty(keyBuilder.pause());
MaintenanceSignal maintenanceSignal = accessor.getProperty(keyBuilder.maintenance());
_paused = updateControllerState(changeContext, pauseSignal, _paused);
_inMaintenanceMode = updateControllerState(changeContext, maintenanceSignal, _inMaintenanceMode);
synchronized (this) {
if (_clusterStatusMonitor == null) {
_clusterStatusMonitor = new ClusterStatusMonitor(changeContext.getManager().getClusterName());
}
}
_clusterStatusMonitor.setEnabled(!_paused);
logger.info("END: GenericClusterController.onControllerChange() for cluster " + _clusterName);
}
示例14: onCallback
import org.apache.helix.NotificationContext; //导入方法依赖的package包/类
@Override
public void onCallback(NotificationContext context) {
NotificationContext.Type type = context.getType();
_callbackInvokeMap.put(type, Boolean.TRUE);
}