From 7daae980c030899113cb3f71275ca6fdac390e7c Mon Sep 17 00:00:00 2001 From: Tom Coupland Date: Mon, 13 Mar 2017 16:21:46 +0000 Subject: [PATCH] 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. --- .../kinesis/clientlibrary/lib/worker/Worker.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/Worker.java b/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/Worker.java index bf9f4e7d..cc183ddf 100644 --- a/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/Worker.java +++ b/src/main/java/com/amazonaws/services/kinesis/clientlibrary/lib/worker/Worker.java @@ -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 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; } /**