From 3a849b03416f2be9cd81460c3841b3fa40464309 Mon Sep 17 00:00:00 2001 From: Jae Hyeon Bae Date: Mon, 7 Jul 2014 23:11:08 -0700 Subject: [PATCH] update refresh manually every hour --- .../s3/FileSessionCredentialsProvider.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/s3-extensions/src/main/java/io/druid/storage/s3/FileSessionCredentialsProvider.java b/s3-extensions/src/main/java/io/druid/storage/s3/FileSessionCredentialsProvider.java index 9a0030f704b..dcaa404286a 100644 --- a/s3-extensions/src/main/java/io/druid/storage/s3/FileSessionCredentialsProvider.java +++ b/s3-extensions/src/main/java/io/druid/storage/s3/FileSessionCredentialsProvider.java @@ -23,12 +23,16 @@ import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.AWSSessionCredentials; import com.google.common.base.Charsets; +import com.google.common.util.concurrent.ThreadFactoryBuilder; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.List; import java.util.Properties; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; public class FileSessionCredentialsProvider implements AWSCredentialsProvider { private final String sessionCredentials; @@ -36,9 +40,20 @@ public class FileSessionCredentialsProvider implements AWSCredentialsProvider { private volatile String accessKey; private volatile String secretKey; + private final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor( + new ThreadFactoryBuilder().setNameFormat("FileSessionCredentialsProviderRefresh-%d").build() + ); + public FileSessionCredentialsProvider(String sessionCredentials) { this.sessionCredentials = sessionCredentials; refresh(); + + scheduler.scheduleAtFixedRate(new Runnable() { + @Override + public void run() { + refresh(); + } + }, 1, 1, TimeUnit.HOURS); // refresh every hour } @Override