Advertisement
John4711

javascript LeastConnectionQueue

Dec 30th, 2022
1,103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class LeastConnectionQueue {
  2.   constructor() {
  3.     this.servers = [];
  4.   }
  5.  
  6.   addServer(server) {
  7.     this.servers.push(server);
  8.   }
  9.  
  10.   removeServer(server) {
  11.     this.servers = this.servers.filter(s => s !== server);
  12.   }
  13.  
  14.   getLeastConnectedServer() {
  15.     let leastConnectedServer = this.servers[0];
  16.     for (let i = 1; i < this.servers.length; i++) {
  17.       if (this.servers[i].connectionCount < leastConnectedServer.connectionCount) {
  18.         leastConnectedServer = this.servers[i];
  19.       }
  20.     }
  21.     return leastConnectedServer;
  22.   }
  23. }
  24.  
  25. class Server {
  26.   constructor(name) {
  27.     this.name = name;
  28.     this.connectionCount = 0;
  29.   }
  30.  
  31.   addConnection() {
  32.     this.connectionCount++;
  33.   }
  34.  
  35.   removeConnection() {
  36.     this.connectionCount--;
  37.   }
  38. }
  39.  
  40. const queue = new LeastConnectionQueue();
  41.  
  42. const server1 = new Server("Server 1");
  43. const server2 = new Server("Server 2");
  44. const server3 = new Server("Server 3");
  45.  
  46. queue.addServer(server1);
  47. queue.addServer(server2);
  48. queue.addServer(server3);
  49.  
  50. server1.addConnection();
  51. server2.addConnection();
  52. server2.addConnection();
  53.  
  54. console.log(queue.getLeastConnectedServer().name); // Server 1
  55.  
  56. server3.addConnection();
  57.  
  58. console.log(queue.getLeastConnectedServer().name); // Server 1
  59.  
  60. server1.addConnection();
  61.  
  62. console.log(queue.getLeastConnectedServer().name); // Server 3
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement