diff options
Diffstat (limited to 'src/main/java/org/openslx/dnbd3/status/StatisticsGenerator.java')
-rw-r--r-- | src/main/java/org/openslx/dnbd3/status/StatisticsGenerator.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/main/java/org/openslx/dnbd3/status/StatisticsGenerator.java b/src/main/java/org/openslx/dnbd3/status/StatisticsGenerator.java index 1f3c25a..fb94275 100644 --- a/src/main/java/org/openslx/dnbd3/status/StatisticsGenerator.java +++ b/src/main/java/org/openslx/dnbd3/status/StatisticsGenerator.java @@ -2,10 +2,10 @@ package org.openslx.dnbd3.status; import java.util.ArrayList; import java.util.List; -import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; +import java.util.concurrent.SynchronousQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -28,7 +28,7 @@ public class StatisticsGenerator { private final List<ServerPoller> pollers; private volatile long lastUpdate = 0; - private ExecutorService threadPool = new ThreadPoolExecutor( 1, 6, 1, TimeUnit.MINUTES, new ArrayBlockingQueue<Runnable>( 100 ) ); + private ExecutorService threadPool = new ThreadPoolExecutor( 3, 8, 1, TimeUnit.MINUTES, new SynchronousQueue<Runnable>() ); private List<Future<Status>> futureStatusList = new ArrayList<>(); private List<Status> statusList = new ArrayList<>(); private final Gson jsonBuilder; @@ -59,14 +59,18 @@ public class StatisticsGenerator { futureStatusList.clear(); for ( final ServerPoller p : pollers ) { - Future<Status> ret = threadPool.submit( new Callable<Status>() { + Callable<Status> task = new Callable<Status>() { @Override public Status call() throws Exception { return p.update(); } - } ); - futureStatusList.add( ret ); + }; + try { + Future<Status> ret = threadPool.submit( task ); + futureStatusList.add( ret ); + } catch ( Exception e ) { + } } statusList.clear(); output.servers.clear(); @@ -136,7 +140,7 @@ public class StatisticsGenerator public String getJson() { ensureUpToDate(); - synchronized ( graph ) { + synchronized ( output ) { return jsonBuilder.toJson( output ); } } |