Arik Hadas has uploaded a new change for review. Change subject: core: executing squartz job immediately ......................................................................
core: executing squartz job immediately This patch adds an option in the SchedulerUtil API to execute scheduled job immediately. SchedulerUtil#triggerJob method, that executes immediately the job with the given id, was added. Relevant unit test was added and set to be disabled like the rest of the similar tests which already exists. Change-Id: I4661691ae970e7517a4e3a43ae87736ebd1cc15f Signed-off-by: Arik Hadas <[email protected]> --- M backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java M backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java M backend/manager/modules/beans/scheduler/src/test/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartsImplTest.java 3 files changed, 54 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/36/11636/1 diff --git a/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java b/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java index 61f9abb..d55d0ad 100644 --- a/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java +++ b/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtil.java @@ -100,6 +100,14 @@ public void resumeJob(String jobId); /** + * Execute immediately the job with the given jobId + * + * @param jobId + * - the id of the job to be triggered + */ + public void triggerJob(String jobId); + + /** * Halts the Scheduler, and cleans up all resources associated with the * Scheduler. The scheduler cannot be re-started. */ diff --git a/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java b/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java index 135ceed..590fe2c 100644 --- a/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java +++ b/backend/manager/modules/beans/scheduler/src/main/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartzImpl.java @@ -378,6 +378,15 @@ } + @Override + public void triggerJob(String jobId) { + try { + sched.triggerJob(jobKey(jobId, Scheduler.DEFAULT_GROUP)); + } catch (SchedulerException se) { + log.error("failed to trigger a job with id=" + jobId, se); + } + } + /** * Halts the Scheduler, and cleans up all resources associated with the * Scheduler. The scheduler cannot be re-started. diff --git a/backend/manager/modules/beans/scheduler/src/test/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartsImplTest.java b/backend/manager/modules/beans/scheduler/src/test/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartsImplTest.java index 0cce2cd..d1e3014 100644 --- a/backend/manager/modules/beans/scheduler/src/test/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartsImplTest.java +++ b/backend/manager/modules/beans/scheduler/src/test/java/org/ovirt/engine/core/utils/timer/SchedulerUtilQuartsImplTest.java @@ -224,6 +224,43 @@ assertEquals("Number of scheduled jobs after resume should be higher than before", true, testResume); } + /* + * test periodic job remain periodic after triggering it to be executed immediately + */ + // @Test + public void testTriggerJob() { + PrintJob pj = new PrintJob(); + long startTestDate = System.currentTimeMillis(); + System.out.println("Start Time=" + startTestDate); + String jobId = + scheduler.scheduleAFixedDelayJob(pj, + "onTimer11", + new Class[0], + new Object[0], + 5, + 8, + TimeUnit.MILLISECONDS); + try { + Thread.sleep(30); + } catch (InterruptedException ie) { + // log.error("sleep was interrupted", ie); + } + int numberOfRunBeforeTriggerting = messages.size(); + + scheduler.triggerJob(jobId); + try { + Thread.sleep(30); + } catch (InterruptedException ie) { + // log.error("sleep was interrupted", ie); + } + int numberOfRunLongAfterTriggering = messages.size(); + + // test if during resume the job was executed again + int diff = numberOfRunLongAfterTriggering - numberOfRunBeforeTriggerting; + boolean testTrigger = diff >= 2; + assertEquals("Number of messages should be at least 2 but was " + diff, true, testTrigger); + } + // @Test @SuppressWarnings("unchecked") public void tryReflection() { -- To view, visit http://gerrit.ovirt.org/11636 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4661691ae970e7517a4e3a43ae87736ebd1cc15f Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
