git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorvasary.daniel <TFS\vasary.daniel>
Tue, 15 Feb 2022 23:02:33 +0000 (23:02 +0000)
committervasary.daniel <TFS\vasary.daniel>
Tue, 15 Feb 2022 23:02:33 +0000 (23:02 +0000)
server/user.jobengine.osgi.server/src/user/jobengine/server/IJobRuntime.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java
server/user.jobengine.osgi.server/src/user/jobengine/server/JobRuntime.java

index 1ae58a586cb523db65c614daa3c86966ca8adfa5..891557b397a99bf37d87d75e4543b086385a267d 100644 (file)
@@ -128,4 +128,6 @@ public interface IJobRuntime extends IJob {
        void setVariable(String name, Object value);\r
 \r
        void swapStack();\r
+\r
+       boolean isExecuting();\r
 }\r
index a9e1ba62590aa138ebc2a8bdfda5f6d203a1eca7..e0e7ff1e8612a1f7172b929a9dc0b75e77129244 100644 (file)
@@ -572,15 +572,40 @@ public class JobEngine implements IJobEngine {
                // A JOB xml-ben beállítható, hogy futhatnak-e párhuzamosan.
                if (template.isMultiInstance())
                        return;
+
+               // Collection<IJobRuntime> values = getJobs().values();
+
+               // vegigmenni a submittedJobs-on!
+
+               Set<Long> ids = submittedJobs.keySet();         
+               for (long id : ids) {
+                       if (!submittedJobs.containsKey(id))
+                               continue;
+                       
+                       IJobRuntime runtime = submittedJobs.get(id);
+                       if (runtime == null)
+                               continue;
+
+                       if (!template.getFileName().equals(runtime.getTemplate()))
+                               continue;
+                       
+                       //'EXECUTING', 'WAIT_EXECUTOR', 'WAIT_SUSPEND', 'RUNNABLE'
+                       if(runtime.isExecuting() || runtime.isRunnable() || runtime.isWaitingSuspend()|| runtime.isWaitingExecutor())
+                               throw new JobEngineException(String.format("Can not submit job. Job with %s.%s already running",
+                                               template.getFileName(), template.getName()));
+               }
+/*             
                List<Job> runningJobs = itemManager.getRunningJobs(template.getFileName());
                if (runningJobs != null) {
                        for (Job job : runningJobs) {
                                Job runningJob = getJob(job.getId());
+
                                if (runningJob != null && runningJob.getStatus() != JobStatus.SUSPENDED)
                                        throw new JobEngineException(String.format("Can not submit job. Job with %s.%s already running",
                                                        template.getFileName(), template.getName()));
                        }
                }
+*/             
        }
 
        @Override
index 13c98bf63929d77b097e9434a0f84e4123e32db3..9296a950e41f2c98432c782f80e0ea65e9e658d2 100644 (file)
@@ -628,17 +628,22 @@ public class JobRuntime extends Job implements IJobRuntime {
 
        @Override
        public boolean isWaitingCancel() {
-               return getStatus() == JobStatus.WAIT_CANCEL;
+               return JobStatus.WAIT_CANCEL.equals(status);
        }
 
        @Override
        public boolean isWaitingExecutor() {
-               return getStatus() == JobStatus.WAIT_EXECUTOR;
+               return JobStatus.WAIT_EXECUTOR.equals(status);
        }
 
        @Override
        public boolean isWaitingSuspend() {
-               return getStatus() == JobStatus.WAIT_SUSPEND;
+               return JobStatus.WAIT_SUSPEND.equals(status);
+       }
+
+       @Override
+       public boolean isExecuting() {
+               return JobStatus.EXECUTING.equals(status);
        }
 
        @Override