git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 7 Feb 2020 14:42:43 +0000 (14:42 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Fri, 7 Feb 2020 14:42:43 +0000 (14:42 +0000)
server/user.jobengine.executors/jobtemplates/archive-material.xml
server/user.jobengine.executors/src/user/jobengine/server/steps/ArchiveMaterialSubmitStep.java
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobRuntime.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobRuntime.java

index bfb5cd28657225dfa301c0d2a21127c8763a753f..8ff8e68e0cbe76bc3491fa5a5d5e00464d730c60 100644 (file)
@@ -63,7 +63,7 @@
                <calljobstep type="user.jobengine.server.steps.MediaToolStep" weight="1">\r
                        <inputs>\r
                                <input>\r
-                                       <variable name="archiveItem" />\r
+                                       <parameter name="archiveItem" />\r
                                </input>\r
                                <input>\r
                                        <variable name="mediaCubeMedia" />\r
index b1232e53acc7d1f18a0530f313559de502846e3e..5ded673ed4a8cf71d8d42b170f95574d69bba95b 100644 (file)
@@ -33,15 +33,20 @@ public class ArchiveMaterialSubmitStep extends JobStep {
                        for (int i = 0; i < archiveList.size(); i++) {\r
                                ArchiveItem archiveItem = archiveList.get(i);\r
                                try {\r
-                                       jobEngine.submit(jobRuntime, null, JOBTEMPLATE, ARCHIVE, ListUtils.asMap(ARCHIVE_ITEM, archiveItem, GLOBAL_SOURCE_PATH, globalSourcePath,\r
-                                                       TRANSCODER_TARGET_PATH, transcoderTargetPath, WEB_PATH, webPath, KILL_DATE_DAYS, killDateDays));\r
+                                       IJobRuntime runtime = jobEngine.submit(jobRuntime, null, JOBTEMPLATE, ARCHIVE,\r
+                                                       ListUtils.asMap(ARCHIVE_ITEM, archiveItem, GLOBAL_SOURCE_PATH, globalSourcePath, TRANSCODER_TARGET_PATH, transcoderTargetPath,\r
+                                                                       WEB_PATH, webPath, KILL_DATE_DAYS, killDateDays));\r
                                        setProgress((i + 1) * 100 / archiveList.size());\r
+                                       //TODO kivezetni a submit hibaüzenetet\r
+                                       if (runtime == null)\r
+                                               throw new Exception("Submit returned null runtime");\r
                                } catch (Exception e) {\r
                                        logger.catching(e);\r
                                        String fileName = new File(archiveItem.getMediaFile()).getName();\r
                                        logger.error(marker, "Az '{}' állomány archiválási kísérlete sikertelen. A rendszer üzenete: {}", fileName, e.getMessage());\r
                                        if (!archiveItem.removeCatchedFile())\r
                                                logger.error(marker, "Az '{}' állomány .catched jelző állománya nem törölhető.", fileName);\r
+                                       throw e;\r
                                }\r
                        }\r
                }\r
index 40f5b6c76cc63ad75d97dc07d15d9bf73a522e01..2f03f88cde56028d757662f72dd437c9bd1179d5 100644 (file)
@@ -20,6 +20,8 @@ public interface IJobRuntime extends IJob {
 \r
        void arrangeStack();\r
 \r
+       void cancelForkPrepare() throws InterruptedException;\r
+\r
        void checkStackParameter() throws RuntimeException, IllegalArgumentException;\r
 \r
        void decrementInstructionPointer();\r
index 5d47c4aaf7e9c7deb5bd5d4bbdba106e2abb4c1b..0643b8554ec04da3c536a0918bb6e0d01159045c 100644 (file)
@@ -165,6 +165,12 @@ public class JobRuntime extends Job implements IJobRuntime {
                }
        }
 
+       @Override
+       public void cancelForkPrepare() throws InterruptedException {
+               if (forkSempahore != null)
+                       forkSempahore.release();
+       }
+
        @Override
        public void checkStackParameter() throws RuntimeException, IllegalArgumentException {
                Class<?> requiredType = (Class<?>) popFromStack();
@@ -227,6 +233,11 @@ public class JobRuntime extends Job implements IJobRuntime {
                                }
                                if (!jobEngine.isRunning())
                                        forkSempahore.release();
+
+                               //A gyerek(ek) el sem indultak, pl. nem letezik a template
+                               if (event.getSignalType().equals(SignalType.UPDATE) && JobStatus.SUSPENDED.equals(getStatus()))
+                                       forkSempahore.release();
+
                        };
                        logger.info("Adding job changed listener");
                        jobEngine.addJobChangedEventListener(jobChangedListener);