Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LeastConnectionQueue {
- constructor() {
- this.servers = [];
- }
- addServer(server) {
- this.servers.push(server);
- }
- removeServer(server) {
- this.servers = this.servers.filter(s => s !== server);
- }
- getLeastConnectedServer() {
- let leastConnectedServer = this.servers[0];
- for (let i = 1; i < this.servers.length; i++) {
- if (this.servers[i].connectionCount < leastConnectedServer.connectionCount) {
- leastConnectedServer = this.servers[i];
- }
- }
- return leastConnectedServer;
- }
- }
- class Server {
- constructor(name) {
- this.name = name;
- this.connectionCount = 0;
- }
- addConnection() {
- this.connectionCount++;
- }
- removeConnection() {
- this.connectionCount--;
- }
- }
- const queue = new LeastConnectionQueue();
- const server1 = new Server("Server 1");
- const server2 = new Server("Server 2");
- const server3 = new Server("Server 3");
- queue.addServer(server1);
- queue.addServer(server2);
- queue.addServer(server3);
- server1.addConnection();
- server2.addConnection();
- server2.addConnection();
- console.log(queue.getLeastConnectedServer().name); // Server 1
- server3.addConnection();
- console.log(queue.getLeastConnectedServer().name); // Server 1
- server1.addConnection();
- console.log(queue.getLeastConnectedServer().name); // Server 3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement