@Override public void noteError(ServiceInstance<T> instance) { downInstanceManager.add(instance); }
void add(ServiceInstance<?> instance) { purge(); Status newStatus = new Status(); Status oldStatus = statuses.putIfAbsent(instance, newStatus); Status useStatus = (oldStatus != null) ? oldStatus : newStatus; useStatus.errorCount.incrementAndGet(); }
public ServiceProviderImpl(ServiceDiscoveryImpl<T> discovery, String serviceName, ProviderStrategy<T> providerStrategy, ThreadFactory threadFactory, List<InstanceFilter<T>> filters, DownInstancePolicy downInstancePolicy) { this.discovery = discovery; this.providerStrategy = providerStrategy; downInstanceManager = new DownInstanceManager<T>(downInstancePolicy); cache = discovery.serviceCacheBuilder().name(serviceName).threadFactory(threadFactory).build(); ArrayList<InstanceFilter<T>> localFilters = Lists.newArrayList(filters); localFilters.add(downInstanceManager); localFilters.add(new InstanceFilter<T>() { @Override public boolean apply(ServiceInstance<T> instance) { return instance.isEnabled(); } }); instanceProvider = new FilteredInstanceProvider<T>(cache, localFilters); }
@Override public boolean apply(ServiceInstance<T> instance) { purge(); Status status = statuses.get(instance); return (status == null) || (status.errorCount.get() < downInstancePolicy.getErrorThreshold()); }
public ServiceProviderImpl(ServiceDiscoveryImpl<T> discovery, String serviceName, ProviderStrategy<T> providerStrategy, ThreadFactory threadFactory, List<InstanceFilter<T>> filters, DownInstancePolicy downInstancePolicy) { this.discovery = discovery; this.providerStrategy = providerStrategy; downInstanceManager = new DownInstanceManager<T>(downInstancePolicy); cache = discovery.serviceCacheBuilder().name(serviceName).threadFactory(threadFactory).build(); ArrayList<InstanceFilter<T>> localFilters = Lists.newArrayList(filters); localFilters.add(downInstanceManager); localFilters.add(new InstanceFilter<T>() { @Override public boolean apply(ServiceInstance<T> instance) { return instance.isEnabled(); } }); instanceProvider = new FilteredInstanceProvider<T>(cache, localFilters); }
void add(ServiceInstance<?> instance) { purge(); Status newStatus = new Status(); Status oldStatus = statuses.putIfAbsent(instance, newStatus); Status useStatus = (oldStatus != null) ? oldStatus : newStatus; useStatus.errorCount.incrementAndGet(); }
@Override public void noteError(ServiceInstance<T> instance) { downInstanceManager.add(instance); } }
@Override public boolean apply(ServiceInstance<T> instance) { purge(); Status status = statuses.get(instance); return (status == null) || (status.errorCount.get() < downInstancePolicy.getErrorThreshold()); }