package com.netflix.eureka.cluster; import com.netflix.discovery.shared.transport.EurekaHttpResponse; import com.netflix.eureka.registry.PeerAwareInstanceRegistryImpl.Action; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Base class for all replication tasks. */ abstract class ReplicationTask { private static final Logger logger = LoggerFactory.getLogger(ReplicationTask.class); protected final String peerNodeName; protected final Action action; ReplicationTask(String peerNodeName, Action action) { this.peerNodeName = peerNodeName; this.action = action; } public abstract String getTaskName(); public Action getAction() { return action; } public abstract EurekaHttpResponse<?> execute() throws Throwable; public void handleSuccess() { } public void handleFailure(int statusCode, Object responseEntity) throws Throwable { logger.warn("The replication of task {} failed with response code {}", getTaskName(), statusCode); } }