All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.king.platform.net.http.netty.backpressure.EvictingBackPressure Maven / Gradle / Ivy

There is a newer version: 3.0.26
Show newest version
// Copyright (C) king.com Ltd 2015
// https://github.com/king/king-http-client
// Author: Magnus Gustafsson
// License: Apache 2.0, https://raw.github.com/king/king-http-client/LICENSE-APACHE

package com.king.platform.net.http.netty.backpressure;

import com.king.platform.net.http.netty.ServerInfo;

import java.util.concurrent.atomic.AtomicInteger;

public class EvictingBackPressure implements BackPressure {
	private final int maxTotalParallelConnections;

	private final AtomicInteger currentParallelConnections = new AtomicInteger();

	public EvictingBackPressure(int maxTotalParallelConnections) {
		this.maxTotalParallelConnections = maxTotalParallelConnections;
	}

	@Override
	public boolean acquireSlot(ServerInfo serverInfo) {
		int current = currentParallelConnections.incrementAndGet();
		return current <= maxTotalParallelConnections;
	}

	@Override
	public void releaseSlot(ServerInfo serverInfo) {
		currentParallelConnections.decrementAndGet();
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy