azkaban-aplcache

Delete executions directory on executor shutdown to reclaim

7/28/2017 9:46:55 PM

Details

diff --git a/azkaban-exec-server/src/main/java/azkaban/execapp/AzkabanExecutorServer.java b/azkaban-exec-server/src/main/java/azkaban/execapp/AzkabanExecutorServer.java
index 09b596c..8d28cef 100644
--- a/azkaban-exec-server/src/main/java/azkaban/execapp/AzkabanExecutorServer.java
+++ b/azkaban-exec-server/src/main/java/azkaban/execapp/AzkabanExecutorServer.java
@@ -196,6 +196,7 @@ public class AzkabanExecutorServer {
         logger.warn("Shutting down executor...");
         try {
           app.shutdownNow();
+          app.getFlowRunnerManager().deleteExecutionDirectory();
         } catch (final Exception e) {
           logger.error("Error while shutting down http server.", e);
         }
diff --git a/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunnerManager.java b/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunnerManager.java
index 5afe1fc..d835c76 100644
--- a/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunnerManager.java
+++ b/azkaban-exec-server/src/main/java/azkaban/execapp/FlowRunnerManager.java
@@ -752,6 +752,18 @@ public class FlowRunnerManager implements EventListener,
     this.triggerManager.shutdown();
   }
 
+  /**
+   * Deleting old execution directory to free disk space.
+   */
+  public void deleteExecutionDirectory() {
+    logger.warn("Deleting execution dir: " + this.executionDirectory.getAbsolutePath());
+    try {
+      FileUtils.deleteDirectory(this.executionDirectory);
+    } catch (final IOException e) {
+      logger.error(e);
+    }
+  }
+
   private class CleanerThread extends Thread {
 
     // Every hour, clean execution dir.