From af22418ccc26822c1839c27159f3a6dbf2c9a8d3 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sun, 29 Aug 2021 07:42:50 -0700 Subject: [PATCH 1/4] ping servers more often with higher wait times --- common/src/main/java/us/ajg0702/queue/common/TaskManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/java/us/ajg0702/queue/common/TaskManager.java b/common/src/main/java/us/ajg0702/queue/common/TaskManager.java index e9932e9..fd644e8 100644 --- a/common/src/main/java/us/ajg0702/queue/common/TaskManager.java +++ b/common/src/main/java/us/ajg0702/queue/common/TaskManager.java @@ -52,7 +52,7 @@ public class TaskManager { updateTask = scheduleAtFixedRate(updateExecutor, main.getQueueManager()::updateServers, 500L, - (long) (Math.max(main.getTimeBetweenPlayers(), 2)*1000L), + (long) (Math.max(main.getTimeBetweenPlayers()/2, 2)*1000L), TimeUnit.MILLISECONDS ); From b9aa10d984578cfcd3d034704a264a5ad6de3395 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sun, 29 Aug 2021 08:31:22 -0700 Subject: [PATCH 2/4] make server pings not block each other --- .../us/ajg0702/queue/common/QueueManagerImpl.java | 9 ++++++++- .../java/us/ajg0702/queue/common/TaskManager.java | 14 +++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java index b2dee1f..6ba1415 100644 --- a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java @@ -19,6 +19,8 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class QueueManagerImpl implements QueueManager { @@ -474,9 +476,14 @@ public class QueueManagerImpl implements QueueManager { @Override public void updateServers() { + ExecutorService pool = main.getTaskManager().getServersUpdateExecutor(); + if (pool instanceof ThreadPoolExecutor && main.getConfig().getBoolean("pinger-debug")) { + main.getLogger().info("[pinger] Server update thread pool has " + +((ThreadPoolExecutor) pool).getActiveCount()+" threads"); + } try { for(QueueServer server : servers) { - server.updatePing(); + pool.submit(server::updatePing); } } catch(Exception e) { e.printStackTrace(); diff --git a/common/src/main/java/us/ajg0702/queue/common/TaskManager.java b/common/src/main/java/us/ajg0702/queue/common/TaskManager.java index fd644e8..18fcbde 100644 --- a/common/src/main/java/us/ajg0702/queue/common/TaskManager.java +++ b/common/src/main/java/us/ajg0702/queue/common/TaskManager.java @@ -2,10 +2,7 @@ package us.ajg0702.queue.common; import java.util.Arrays; import java.util.List; -import java.util.concurrent.Executors; -import java.util.concurrent.ScheduledExecutorService; -import java.util.concurrent.ScheduledFuture; -import java.util.concurrent.TimeUnit; +import java.util.concurrent.*; public class TaskManager { @@ -13,6 +10,8 @@ public class TaskManager { final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); final ScheduledExecutorService updateExecutor = Executors.newScheduledThreadPool(1); + final ExecutorService serversUpdateExecutor = Executors.newCachedThreadPool(); + final QueueMain main; public TaskManager(QueueMain main) { this.main = main; @@ -21,6 +20,11 @@ public class TaskManager { public void shutdown() { executor.shutdown(); updateExecutor.shutdown(); + serversUpdateExecutor.shutdown(); + } + + public ExecutorService getServersUpdateExecutor() { + return serversUpdateExecutor; } public String taskStatus() { @@ -52,7 +56,7 @@ public class TaskManager { updateTask = scheduleAtFixedRate(updateExecutor, main.getQueueManager()::updateServers, 500L, - (long) (Math.max(main.getTimeBetweenPlayers()/2, 2)*1000L), + (long) (Math.max(main.getTimeBetweenPlayers()/2, 1)*1000L), TimeUnit.MILLISECONDS ); From d5cdc9afc0220afd80181324cfaa1430a3b367e2 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sun, 29 Aug 2021 09:28:05 -0700 Subject: [PATCH 3/4] dont check permission if permission is null --- .../queue/platforms/bungeecord/commands/BungeeSender.java | 1 + .../queue/platforms/velocity/commands/VelocitySender.java | 1 + 2 files changed, 2 insertions(+) diff --git a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/commands/BungeeSender.java b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/commands/BungeeSender.java index dda2f74..de75704 100644 --- a/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/commands/BungeeSender.java +++ b/platforms/bungeecord/src/main/java/us/ajg0702/queue/platforms/bungeecord/commands/BungeeSender.java @@ -18,6 +18,7 @@ public class BungeeSender implements ICommandSender { @Override public boolean hasPermission(String permission) { + if(permission == null) return true; return handle.hasPermission(permission); } diff --git a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/commands/VelocitySender.java b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/commands/VelocitySender.java index 765651e..b38642f 100644 --- a/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/commands/VelocitySender.java +++ b/platforms/velocity/src/main/java/us/ajg0702/queue/platforms/velocity/commands/VelocitySender.java @@ -17,6 +17,7 @@ public class VelocitySender implements ICommandSender { @Override public boolean hasPermission(String permission) { + if(permission == null) return true; return handle.hasPermission(permission); } From de9ce9828a35f8a62d927b6edddfe5c2f83ce334 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sun, 29 Aug 2021 11:02:44 -0700 Subject: [PATCH 4/4] 2.0.6 --- build.gradle.kts | 2 +- .../us/ajg0702/queue/common/queues/QueueServerImpl.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 06cabdd..800730e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ repositories { } allprojects { - version = "2.0.5" + version = "2.0.6" group = "us.ajg0702" plugins.apply("java") diff --git a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java index c876233..23fd963 100644 --- a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java @@ -249,10 +249,10 @@ public class QueueServerImpl implements QueueServer { if(p != null && isWhitelisted() && !whitelistedUUIDs.contains(p.getUniqueId())) { return false; } - return this.isOnline() && - this.canAccess(p) && - !this.isFull() && - !this.isPaused(); + return isOnline() && + canAccess(p) && + !isFull() && + !isPaused(); } @Override