Folyamat lepesek (archivalas, transzkodolas) javitasa, uj HSM migrator
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 16 Oct 2019 11:09:04 +0000 (11:09 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Wed, 16 Oct 2019 11:09:04 +0000 (11:09 +0000)
git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31571

server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/HSMMigrateListBuilderStep.java [new file with mode: 0644]
server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java
server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeStep.java

index 36b092f9b8eea843fc6b0782f9b53133380b43ef..9f67384bcb7bfb1e3e4c2e8ec5ffebe661c055c7 100644 (file)
@@ -107,14 +107,14 @@ public class ArchiveListBuilderStep extends JobStep {
                        }\r
                }\r
 \r
-               if (limit > 0) {\r
-                       int correctedLimit = limit > archiveList.size() ? archiveList.size() : limit;\r
-                       if (correctedLimit > 0) {\r
-                               archiveList = archiveList.subList(0, correctedLimit - 1);\r
-                               logger.info(marker, "A folyamat elérte a beállított {} limitet.", limit);\r
-                       } else\r
-                               logger.info(marker, "Nincs archiválandó anyag.");\r
-               else\r
+               if (limit > 0 && archiveList.size() > limit) {\r
+                       archiveList = archiveList.subList(0, limit);\r
+                       logger.info(marker, "A folyamat alkalmazza a beállított {} limitet.", limit);\r
+               }\r
+\r
+               if (archiveList.size() == 0)\r
+                       logger.info(marker, "Nincs archiválandó anyag.");\r
+               else\r
                        logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size());\r
 \r
                for (ArchiveItem archiveItem : archiveList) {\r
diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/HSMMigrateListBuilderStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/HSMMigrateListBuilderStep.java
new file mode 100644 (file)
index 0000000..d74026e
--- /dev/null
@@ -0,0 +1,60 @@
+package user.jobengine.server.steps;\r
+\r
+import java.io.File;\r
+import java.io.IOException;\r
+import java.nio.file.DirectoryStream;\r
+import java.nio.file.Files;\r
+import java.nio.file.Path;\r
+import java.nio.file.Paths;\r
+import java.util.LinkedList;\r
+import java.util.List;\r
+\r
+import org.apache.logging.log4j.LogManager;\r
+import org.apache.logging.log4j.Logger;\r
+import org.apache.logging.log4j.Marker;\r
+\r
+import user.jobengine.server.IJobEngine;\r
+import user.jobengine.server.IJobRuntime;\r
+\r
+public class HSMMigrateListBuilderStep extends JobStep {\r
+       private static final Logger logger = LogManager.getLogger();\r
+       private static final String MXFEXT = ".mxf";\r
+       private static final String MOVEXT = ".mov";\r
+       private Marker marker = jobRuntime.getMarker();\r
+\r
+       @StepEntry\r
+       public Object[] execute(String sourcePath, int limit, IJobEngine jobEngine, IJobRuntime jobRuntime) {\r
+               marker = jobRuntime.getMarker();\r
+               List<ArchiveItem> archiveList = new LinkedList<ArchiveItem>();\r
+               DirectoryStream<Path> directoryStream = null;\r
+               try {\r
+                       DirectoryStream<Path> stream = Files.newDirectoryStream(Paths.get(sourcePath));\r
+                       for (Path p : stream) {\r
+                               processPathItem(p, archiveList);\r
+                       }\r
+               } catch (Exception e) {\r
+                       logger.catching(e);\r
+                       logger.error(marker, "Az '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", e.getMessage());\r
+               } finally {\r
+                       if (directoryStream != null) {\r
+                               try {\r
+                                       directoryStream.close();\r
+                               } catch (IOException e) {\r
+                               }\r
+                       }\r
+               }\r
+               return new Object[] { archiveList };\r
+       }\r
+\r
+       private boolean processPathItem(Path mediaFilePath, final List<ArchiveItem> archiveList) {\r
+               File mediaFile = mediaFilePath.toFile();\r
+\r
+               //              if (mediaFile.length() > 0)\r
+               //                      return false;\r
+\r
+               if (mediaFile.isDirectory() || !mediaFile.getName().toLowerCase().endsWith(MXFEXT.toLowerCase())) {\r
+                       return false;\r
+               }\r
+               return true;\r
+       }\r
+}\r
index 87fd3f7f191112d0245c0df3edc9a3ba48bf5aee..e6b454c763236229ece03bf6b122096e6f8f7ea2 100644 (file)
@@ -36,6 +36,7 @@ public class TranscodeFFAStranStep extends JobStep {
        public Object[] execute(ArchiveItem archiveItem, Media mediaCubeMedia, String transcoderAddress, String transcoderTemplateName,\r
                        String globalHiresSourcePath, String localLowresTargetPath, String webPath, boolean deleteSource, IJobEngine jobEngine, IJobRuntime jobRuntime)\r
                        throws Exception {\r
+\r
                this.marker = jobRuntime.getMarker();\r
                this.manager = jobEngine.getItemManager();\r
                this.store = check(manager.getSystemStore(true), "lowres Store");\r
@@ -49,6 +50,7 @@ public class TranscodeFFAStranStep extends JobStep {
                check(webPath, "webPath");\r
 \r
                File sourceMediaFile = new File(archiveItem.getMediaFile());\r
+               logger.info("Transcoding {}", archiveItem.getMediaFile());\r
                String sourceFileName = sourceMediaFile.getName();\r
                String details = String.format("%s (%d bytes)", sourceFileName, sourceMediaFile.length());\r
                Path targetPath = null;\r
@@ -63,7 +65,7 @@ public class TranscodeFFAStranStep extends JobStep {
                                });\r
 \r
                                api.submit(transcoderTemplateName, sourceFile);\r
-                               api.monitor(1000);\r
+                               api.monitor(3000);\r
                        }\r
 \r
                        //a sikeres transzkod utan nem mindig van ott egybol a fajl\r
index 45f2f11d013690d3a3d0b0e8f615818ee478f0bf..34e3f0f6e720d85c2c1c0821c0688804c71cbcc4 100644 (file)
@@ -20,10 +20,10 @@ public class TranscodeStep extends JobStep {
                        break;\r
                }\r
                case 1: {\r
-                       TranscodeFFAStranStep selenioStep = new TranscodeFFAStranStep();\r
+                       TranscodeFFAStranStep ffaStransStep = new TranscodeFFAStranStep();\r
                        String transcoderAddress = System.getProperty("jobengine.transcoder.address");\r
                        String transcoderTemplateName = System.getProperty("jobengine.transcoder.template");\r
-                       selenioStep.execute(archiveItem, mediaCubeMedia, transcoderAddress, transcoderTemplateName, globalSourcePath, transcoderTargetPath, webPath, false,\r
+                       ffaStransStep.execute(archiveItem, mediaCubeMedia, transcoderAddress, transcoderTemplateName, globalSourcePath, transcoderTargetPath, webPath, false,\r
                                        jobEngine, jobRuntime);\r
                        break;\r
                }\r