From 2e5797e348f46dcee128eb73844deda0853f5b33 Mon Sep 17 00:00:00 2001 From: pabloFuente Date: Mon, 30 Nov 2020 17:16:22 +0100 Subject: [PATCH] openvidu-server: more wait time when waiting for files if docker env --- .../service/ComposedQuickStartRecordingService.java | 7 +++---- .../recording/service/ComposedRecordingService.java | 4 +--- .../io/openvidu/server/utils/CustomFileManager.java | 5 +++-- .../server/utils/LocalCustomFileManager.java | 12 ++++++++---- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedQuickStartRecordingService.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedQuickStartRecordingService.java index 7d1d0e87..391e29bd 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedQuickStartRecordingService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedQuickStartRecordingService.java @@ -246,7 +246,7 @@ public class ComposedQuickStartRecordingService extends ComposedRecordingService private void waitForComposedQuickStartFiles(Recording recording) throws Exception { - final int SECONDS_MAX_WAIT = 30; + final int SECONDS_MAX_WAIT = fileManager.maxSecondsWaitForFile(); final String PATH = this.openviduConfig.getOpenViduRecordingPath() + recording.getId() + "/"; // Waiting for the files generated at the end of the stopping process: the @@ -264,8 +264,7 @@ public class ComposedQuickStartRecordingService extends ComposedRecordingService @Override public void run() { try { - fileManager.waitForFileToExistAndNotEmpty(recording.getRecordingProperties().mediaNode(), file, - SECONDS_MAX_WAIT); + fileManager.waitForFileToExistAndNotEmpty(recording.getRecordingProperties().mediaNode(), file); } catch (Exception e) { log.error(e.getMessage()); recording.setStatus(io.openvidu.java.client.Recording.Status.failed); @@ -282,7 +281,7 @@ public class ComposedQuickStartRecordingService extends ComposedRecordingService if (!latch.await(SECONDS_MAX_WAIT, TimeUnit.SECONDS)) { recording.setStatus(io.openvidu.java.client.Recording.Status.failed); String msg = "The wait for files of COMPOSED_QUICK_START recording " + recording.getId() - + " didn't complete in " + SECONDS_MAX_WAIT + " seconds"; + + " didn't complete in " + fileManager.maxSecondsWaitForFile() + " seconds"; log.error(msg); throw new Exception(msg); } else { diff --git a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java index 31a55bad..ad654b18 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java +++ b/openvidu-server/src/main/java/io/openvidu/server/recording/service/ComposedRecordingService.java @@ -433,9 +433,7 @@ public class ComposedRecordingService extends RecordingService { protected void waitForVideoFileNotEmpty(Recording recording) throws Exception { final String VIDEO_FILE = this.openviduConfig.getOpenViduRecordingPath() + recording.getId() + "/" + recording.getName() + RecordingService.COMPOSED_RECORDING_EXTENSION; - int SECONDS_MAX_WAIT = 20; - this.fileManager.waitForFileToExistAndNotEmpty(recording.getRecordingProperties().mediaNode(), VIDEO_FILE, - SECONDS_MAX_WAIT); + this.fileManager.waitForFileToExistAndNotEmpty(recording.getRecordingProperties().mediaNode(), VIDEO_FILE); } protected void failRecordingCompletion(Recording recording, String containerId, boolean removeContainer, diff --git a/openvidu-server/src/main/java/io/openvidu/server/utils/CustomFileManager.java b/openvidu-server/src/main/java/io/openvidu/server/utils/CustomFileManager.java index 11f6da46..4cf84766 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/utils/CustomFileManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/utils/CustomFileManager.java @@ -121,7 +121,8 @@ public abstract class CustomFileManager { } } - public abstract void waitForFileToExistAndNotEmpty(String mediaNodeId, String absolutePathToFile, - int maxSecondsWait) throws Exception; + public abstract void waitForFileToExistAndNotEmpty(String mediaNodeId, String absolutePathToFile) throws Exception; + + public abstract int maxSecondsWaitForFile(); } diff --git a/openvidu-server/src/main/java/io/openvidu/server/utils/LocalCustomFileManager.java b/openvidu-server/src/main/java/io/openvidu/server/utils/LocalCustomFileManager.java index b2568767..5e45fb50 100644 --- a/openvidu-server/src/main/java/io/openvidu/server/utils/LocalCustomFileManager.java +++ b/openvidu-server/src/main/java/io/openvidu/server/utils/LocalCustomFileManager.java @@ -5,12 +5,12 @@ import java.io.File; public class LocalCustomFileManager extends CustomFileManager { @Override - public void waitForFileToExistAndNotEmpty(String mediaNodeId, String absolutePathToFile, int maxSeconsWait) - throws Exception { + public void waitForFileToExistAndNotEmpty(String mediaNodeId, String absolutePathToFile) throws Exception { // Check 10 times per seconds + int MAX_SECONDS_WAIT = this.maxSecondsWaitForFile(); int MILLISECONDS_INTERVAL_WAIT = 100; - int LIMIT = maxSeconsWait * 1000 / MILLISECONDS_INTERVAL_WAIT; + int LIMIT = MAX_SECONDS_WAIT * 1000 / MILLISECONDS_INTERVAL_WAIT; int i = 0; boolean arePresent = fileExistsAndHasBytes(absolutePathToFile); @@ -25,7 +25,7 @@ public class LocalCustomFileManager extends CustomFileManager { } if (!arePresent) { throw new Exception("File " + absolutePathToFile + " does not exist and hasn't been created in " - + maxSeconsWait + " seconds"); + + MAX_SECONDS_WAIT + " seconds"); } } @@ -34,4 +34,8 @@ public class LocalCustomFileManager extends CustomFileManager { return (f.exists() && f.isFile() && f.length() > 0); } + public int maxSecondsWaitForFile() { + return 30; + } + }