From: vasary.daniel Date: Mon, 8 Feb 2021 16:15:13 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=cb7a952b88b4ddefef4dcb94dfe887cf3abbaf03;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C32139 --- diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java index 66b092ba..cd38fc11 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/IJobEngineConfiguration.java @@ -3,6 +3,8 @@ package user.jobengine.server; import java.util.List; import java.util.Map; +import com.ibm.nosql.json.api.BasicDBObject; + import user.jobengine.server.ast.JobTemplate; import user.jobengine.server.scheduler.ScheduledJob; import user.jobengine.server.steps.IJobStep; @@ -11,10 +13,14 @@ public interface IJobEngineConfiguration { IJobStep createJobStep(String stepUnitName) throws Exception; + ScheduledJob createScheduledJob(BasicDBObject jobJSON); + Map getExecutors(); Map getPrograms(); + List getScheduleDescriptors(); + Map getSchedules(); List getTemplates(); diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java index c4037986..dfafb8ea 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/JobEngineConfiguration.java @@ -49,6 +49,7 @@ public class JobEngineConfiguration implements IJobEngineConfiguration { private final Map programs = new LinkedHashMap(); private final Map schedules = new LinkedHashMap(); private final List templates = Collections.synchronizedList(new ArrayList()); + private final List scheduleDescriptors = Collections.synchronizedList(new ArrayList()); private URLClassLoader stepsClassLoader = null; @@ -91,7 +92,8 @@ public class JobEngineConfiguration implements IJobEngineConfiguration { return result; } - private ScheduledJob createScheduledJob(BasicDBObject jobJSON) { + @Override + public ScheduledJob createScheduledJob(BasicDBObject jobJSON) { ScheduledJob sj = new ScheduledJob(); String name = jobJSON.getString("name"); String template = jobJSON.getString("template"); @@ -149,6 +151,11 @@ public class JobEngineConfiguration implements IJobEngineConfiguration { return programs; } + @Override + public List getScheduleDescriptors() { + return scheduleDescriptors; + } + @Override public Map getSchedules() { return schedules; @@ -211,6 +218,7 @@ public class JobEngineConfiguration implements IJobEngineConfiguration { @Override public void loadSchedules() throws Exception { getSchedules().clear(); + getScheduleDescriptors().clear(); String configFilePath = systemConfig.getConfig(JobEngineConfiguration.CONF_SCHEDULES); logger.info("Loading scheduler configuration file {}", configFilePath); String jsonConfig = new String(Files.readAllBytes(Paths.get(configFilePath))); @@ -221,6 +229,7 @@ public class JobEngineConfiguration implements IJobEngineConfiguration { ScheduledJob sj = null; try { sj = createScheduledJob(sjob); + getScheduleDescriptors().add(sjob); } catch (Exception e) { logger.error("Error creating job: {}", sjob); } diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/server/scheduler/SchedulerService.java b/server/user.jobengine.osgi.server/src/user/jobengine/server/scheduler/SchedulerService.java index a30519b7..ff6d5725 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/server/scheduler/SchedulerService.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/server/scheduler/SchedulerService.java @@ -26,8 +26,6 @@ import org.quartz.UnableToInterruptJobException; import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.matchers.KeyMatcher; -import com.ibm.nosql.json.api.BasicDBList; - import user.jobengine.server.IJobEngine; import user.jobengine.server.IJobEngineConfiguration; @@ -42,7 +40,6 @@ public class SchedulerService { private Scheduler scheduler = null; private IJobEngine jobEngine = null; - private BasicDBList scheduleJobs; public SchedulerService(IJobEngine jobEngine) { // http://www.quartz-scheduler.org/documentation/quartz-2.2.x/configuration/ @@ -99,10 +96,6 @@ public class SchedulerService { return result; } - public BasicDBList getScheduleJobs() { - return scheduleJobs; - } - private void interruptJobs(List jobs) throws UnableToInterruptJobException { for (JobExecutionContext context : jobs) { String instanceID = context.getFireInstanceId(); diff --git a/server/user.mediacube.gui/src/user/jobengine/zk/model/JobSelectorModel.java b/server/user.mediacube.gui/src/user/jobengine/zk/model/JobSelectorModel.java index 45c69860..205fb415 100644 --- a/server/user.mediacube.gui/src/user/jobengine/zk/model/JobSelectorModel.java +++ b/server/user.mediacube.gui/src/user/jobengine/zk/model/JobSelectorModel.java @@ -23,7 +23,6 @@ import org.zkoss.zul.Window; import com.ibm.nosql.json.api.BasicDBObject; -import user.commons.nosql.NoSQLUtils; import user.jobengine.server.IJobEngine; import user.jobengine.server.scheduler.ScheduledJob; import user.jobengine.server.scheduler.SchedulerService; @@ -54,7 +53,7 @@ public class JobSelectorModel extends BaseModel { if (selectedJob == null) return; - ScheduledJob scheduledJob = jobEngine.getScheduledJob(""); + ScheduledJob scheduledJob = jobEngine.getScheduledJob(selectedJob.getString("template")); scheduledJob.setJobEngine(jobEngine); try { scheduledJob.doManualJob(); @@ -79,7 +78,7 @@ public class JobSelectorModel extends BaseModel { @Init public void init() { this.jobEngine = (IJobEngine) Executions.getCurrent().getArg().get("jobEngine"); - jobs = new ListModelList<>(NoSQLUtils.asList(jobEngine.getScheduler().getScheduleJobs())); + jobs = new ListModelList<>(jobEngine.getJobEngineConfiguration().getScheduleDescriptors()); } @Command @@ -88,7 +87,7 @@ public class JobSelectorModel extends BaseModel { SchedulerService scheduler = jobEngine.getScheduler(); try { scheduler.restart(); - jobs = new ListModelList<>(NoSQLUtils.asList(scheduler.getScheduleJobs())); + jobs = new ListModelList<>(jobEngine.getJobEngineConfiguration().getScheduleDescriptors()); } catch (Exception e) { logger.info("Scheduler reload error. System message: {}", e.getMessage()); }