Adding initialized boolean to record work state

Due to the long startup time of workers it's helpful to find out if they are ready for work.
This commit is contained in:
Tom Coupland 2017-03-13 16:21:46 +00:00 committed by GitHub
parent 0a91e6faa5
commit 7daae980c0

View file

@ -93,6 +93,8 @@ public class Worker implements Runnable {
private volatile boolean shutdown;
private volatile long shutdownStartTimeMillis;
private volatile boolean shutdownComplete = false;
private volatile boolean initialized = false;
// Holds consumers for shards the worker is currently tracking. Key is shard
// info, value is ShardConsumer.
@ -457,6 +459,7 @@ public class Worker implements Runnable {
if (!isDone) {
throw new RuntimeException(lastException);
}
initialized = true;
}
/**
@ -579,6 +582,10 @@ public class Worker implements Runnable {
boolean isShutdownComplete() {
return shutdownComplete;
}
public boolean isInitialized() {
return initialized;
}
ConcurrentMap<ShardInfo, ShardConsumer> getShardInfoShardConsumerMap() {
return shardInfoShardConsumerMap;
@ -629,8 +636,9 @@ public class Worker implements Runnable {
}
if (metricsFactory instanceof WorkerCWMetricsFactory) {
((CWMetricsFactory) metricsFactory).shutdown();
}
shutdownComplete = true;
}
initialized = false;
shutdownComplete = true;
}
/**