From a6b22c0084e816b7bcad68d85e77385f871d695a Mon Sep 17 00:00:00 2001 From: =?utf8?q?V=C3=A1s=C3=A1ry=20D=C3=A1niel?= Date: Wed, 16 Oct 2019 11:09:04 +0000 Subject: [PATCH] Folyamat lepesek (archivalas, transzkodolas) javitasa, uj HSM migrator git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31571 --- .../server/steps/ArchiveListBuilderStep.java | 16 ++--- .../steps/HSMMigrateListBuilderStep.java | 60 +++++++++++++++++++ .../server/steps/TranscodeFFAStranStep.java | 4 +- .../jobengine/server/steps/TranscodeStep.java | 4 +- 4 files changed, 73 insertions(+), 11 deletions(-) create mode 100644 server/user.jobengine.executors/src/user/jobengine/server/steps/HSMMigrateListBuilderStep.java diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java index 36b092f9..9f67384b 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveListBuilderStep.java @@ -107,14 +107,14 @@ public class ArchiveListBuilderStep extends JobStep { } } - if (limit > 0) { - int correctedLimit = limit > archiveList.size() ? archiveList.size() : limit; - if (correctedLimit > 0) { - archiveList = archiveList.subList(0, correctedLimit - 1); - logger.info(marker, "A folyamat elérte a beállított {} limitet.", limit); - } else - logger.info(marker, "Nincs archiválandó anyag."); - } else + if (limit > 0 && archiveList.size() > limit) { + archiveList = archiveList.subList(0, limit); + logger.info(marker, "A folyamat alkalmazza a beállított {} limitet.", limit); + } + + if (archiveList.size() == 0) + logger.info(marker, "Nincs archiválandó anyag."); + else logger.info(marker, "Az archiváló folyamat {} új anyagot érzékelt.", archiveList == null ? 0 : archiveList.size()); for (ArchiveItem archiveItem : archiveList) { 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 index 00000000..d74026e8 --- /dev/null +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/HSMMigrateListBuilderStep.java @@ -0,0 +1,60 @@ +package user.jobengine.server.steps; + +import java.io.File; +import java.io.IOException; +import java.nio.file.DirectoryStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.LinkedList; +import java.util.List; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.Marker; + +import user.jobengine.server.IJobEngine; +import user.jobengine.server.IJobRuntime; + +public class HSMMigrateListBuilderStep extends JobStep { + private static final Logger logger = LogManager.getLogger(); + private static final String MXFEXT = ".mxf"; + private static final String MOVEXT = ".mov"; + private Marker marker = jobRuntime.getMarker(); + + @StepEntry + public Object[] execute(String sourcePath, int limit, IJobEngine jobEngine, IJobRuntime jobRuntime) { + marker = jobRuntime.getMarker(); + List archiveList = new LinkedList(); + DirectoryStream directoryStream = null; + try { + DirectoryStream stream = Files.newDirectoryStream(Paths.get(sourcePath)); + for (Path p : stream) { + processPathItem(p, archiveList); + } + } catch (Exception e) { + logger.catching(e); + logger.error(marker, "Az '{}' mappa elérése sikertelen. A rendszer hibaüzenete: {}", e.getMessage()); + } finally { + if (directoryStream != null) { + try { + directoryStream.close(); + } catch (IOException e) { + } + } + } + return new Object[] { archiveList }; + } + + private boolean processPathItem(Path mediaFilePath, final List archiveList) { + File mediaFile = mediaFilePath.toFile(); + + // if (mediaFile.length() > 0) + // return false; + + if (mediaFile.isDirectory() || !mediaFile.getName().toLowerCase().endsWith(MXFEXT.toLowerCase())) { + return false; + } + return true; + } +} diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java index 87fd3f7f..e6b454c7 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeFFAStranStep.java @@ -36,6 +36,7 @@ public class TranscodeFFAStranStep extends JobStep { public Object[] execute(ArchiveItem archiveItem, Media mediaCubeMedia, String transcoderAddress, String transcoderTemplateName, String globalHiresSourcePath, String localLowresTargetPath, String webPath, boolean deleteSource, IJobEngine jobEngine, IJobRuntime jobRuntime) throws Exception { + this.marker = jobRuntime.getMarker(); this.manager = jobEngine.getItemManager(); this.store = check(manager.getSystemStore(true), "lowres Store"); @@ -49,6 +50,7 @@ public class TranscodeFFAStranStep extends JobStep { check(webPath, "webPath"); File sourceMediaFile = new File(archiveItem.getMediaFile()); + logger.info("Transcoding {}", archiveItem.getMediaFile()); String sourceFileName = sourceMediaFile.getName(); String details = String.format("%s (%d bytes)", sourceFileName, sourceMediaFile.length()); Path targetPath = null; @@ -63,7 +65,7 @@ public class TranscodeFFAStranStep extends JobStep { }); api.submit(transcoderTemplateName, sourceFile); - api.monitor(1000); + api.monitor(3000); } //a sikeres transzkod utan nem mindig van ott egybol a fajl diff --git a/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeStep.java b/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeStep.java index 45f2f11d..34e3f0f6 100644 --- a/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeStep.java +++ b/server/user.jobengine.executors/src/user/jobengine/server/steps/TranscodeStep.java @@ -20,10 +20,10 @@ public class TranscodeStep extends JobStep { break; } case 1: { - TranscodeFFAStranStep selenioStep = new TranscodeFFAStranStep(); + TranscodeFFAStranStep ffaStransStep = new TranscodeFFAStranStep(); String transcoderAddress = System.getProperty("jobengine.transcoder.address"); String transcoderTemplateName = System.getProperty("jobengine.transcoder.template"); - selenioStep.execute(archiveItem, mediaCubeMedia, transcoderAddress, transcoderTemplateName, globalSourcePath, transcoderTargetPath, webPath, false, + ffaStransStep.execute(archiveItem, mediaCubeMedia, transcoderAddress, transcoderTemplateName, globalSourcePath, transcoderTargetPath, webPath, false, jobEngine, jobRuntime); break; } -- 2.54.0