From ca9ff2f07c991eae3aa1c113fdeae0b1f842e4a0 Mon Sep 17 00:00:00 2001 From: "vasary.daniel" Date: Tue, 15 Feb 2022 23:02:33 +0000 Subject: [PATCH] git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C32975 --- .../user/jobengine/server/IJobRuntime.java | 2 ++ .../src/user/jobengine/server/JobEngine.java | 25 +++++++++++++++++++ .../src/user/jobengine/server/JobRuntime.java | 11 +++++--- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobRuntime.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobRuntime.java index 1ae58a58..891557b3 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobRuntime.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobRuntime.java @@ -128,4 +128,6 @@ public interface IJobRuntime extends IJob { void setVariable(String name, Object value); void swapStack(); + + boolean isExecuting(); } diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java index a9e1ba62..e0e7ff1e 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngine.java @@ -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 values = getJobs().values(); + + // vegigmenni a submittedJobs-on! + + Set 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 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 diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobRuntime.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobRuntime.java index 13c98bf6..9296a950 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobRuntime.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobRuntime.java @@ -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 -- 2.54.0