Package org.rhq.enterprise.server.scheduler

Examples of org.rhq.enterprise.server.scheduler.SchedulerLocal


        PageList<BundleDeployment> deployments = bundleManager.findBundleDeploymentsByCriteria(overlord,
            getCriteriaFromContext(context));

        if (deployments.size() > 0) {
            BundleDeployment bundleDeployment = deployments.get(0);
            SchedulerLocal scheduler = LookupUtil.getSchedulerBean();
            JobDetail jobDetail = context.getJobDetail();

            BundleDeploymentStatus bundleDeploymentStatus = bundleManager.determineBundleDeploymentStatus(bundleDeployment.getId());
            if (bundleDeploymentStatus.isTerminal()) {
                // delete this job, we've assigned a final status
                try {
                    context.setResult(bundleDeploymentStatus); // Return status to possible listeners
                    scheduler.deleteJob(jobDetail.getName(), jobDetail.getGroup());
                } catch (SchedulerException e) {
                    throw new JobExecutionException("Could not delete the bundle deployment completion check job for "
                        + bundleDeployment + ".", e);
                }
            } else {
                // try again in 10s
                try {
                    Trigger trigger = QuartzUtil.getFireOnceOffsetTrigger(jobDetail, 10000L);
                    // just need a trigger name unique for this job
                    trigger.setName(String.valueOf(System.currentTimeMillis()));
                    scheduler.scheduleJob(trigger);
                } catch (SchedulerException e) {
                    throw new JobExecutionException(
                        "Could not schedule the bundle deployment completion check job for " + bundleDeployment + ".",
                        e);
                }
View Full Code Here


        }
        if (selectedItems == null || selectedItems.length == 0) {
            throw new IllegalStateException("No job selected to execute");
        }

        SchedulerLocal scheduler = LookupUtil.getSchedulerBean();

        for (String jobIdString : selectedItems) {
            GroupOperationSchedule groupSchedule;
            try {
                groupSchedule = manager.getGroupOperationSchedule(subject, jobIdString);
            } catch (SchedulerException se) {
                throw new IllegalStateException(se.getMessage(), se);
            }

            List<Resource> resources = groupSchedule.getExecutionOrder();
            int[] resourceIds;
            if (resources == null) {
                resourceIds = new int[0];
            } else {
                resourceIds = new int[resources.size()];

                int i = 0;
                for (Resource next : resources) {
                    resourceIds[i++] = next.getId();
                }
            }

            JobDetail jobDetail = scheduler.getJobDetail(groupSchedule.getJobName(), groupSchedule.getJobGroup());
            scheduleOperation(subject, groupSchedule.getOperationName(), resourceIds, groupSchedule.isHaltOnFailure(),
                groupSchedule.getParameters(), (SimpleTrigger) QuartzUtil.getFireOnceImmediateTrigger(jobDetail),
                groupSchedule.getDescription());
        }
View Full Code Here

        // there should always be a DataPurgeJob defined with a job name as the same as this class' name
        // let's trigger that job now.  this ensures the job is only ever run once, never concurrently
        // note that you can't call this method again until the data purge job finished; otherwise,
        // you'll get an exception saying there is already a trigger defined - this is what we want, you
        // shouldn't ask for more than one data purge job to execute now - you have to wait for it to finish.
        SchedulerLocal scheduler = LookupUtil.getSchedulerBean();
        SimpleTrigger trigger = new SimpleTrigger("DataPurgeJobNow", DataPurgeJob.class.getName());
        trigger.setJobName(DataPurgeJob.class.getName());
        trigger.setJobGroup(DataPurgeJob.class.getName());
        scheduler.scheduleJob(trigger);
    }
View Full Code Here

        // there should always be a DataCalcJob defined with a job name as the same as this class' name
        // let's trigger that job now.  this ensures the job is only ever run once, never concurrently
        // note that you can't call this method again until the data calc job finished; otherwise,
        // you'll get an exception saying there is already a trigger defined - this is what we want, you
        // shouldn't ask for more than one data calc job to execute now - you have to wait for it to finish.
        SchedulerLocal scheduler = LookupUtil.getSchedulerBean();
        SimpleTrigger trigger = new SimpleTrigger("DataCalcJobNow", DataCalcJob.class.getName());
        trigger.setJobName(DataCalcJob.class.getName());
        trigger.setJobGroup(DataCalcJob.class.getName());
        scheduler.scheduleJob(trigger);
    }
View Full Code Here

    @Override
    public void executeJobCode(JobExecutionContext context) throws JobExecutionException {
        JobDataMap jobDataMap = context.getMergedJobDataMap();
        final String triggerName = (String) jobDataMap.get(MeasurementScheduleManagerBean.TRIGGER_NAME);
        final String triggerGroupName = (String) jobDataMap.get(MeasurementScheduleManagerBean.TRIGGER_GROUP_NAME);
        SchedulerLocal scheduler = LookupUtil.getSchedulerBean();
        try {
            scheduler.unscheduleJob(triggerName, triggerGroupName);
        } catch (SchedulerException e) {
            log.error("Failed to unschedule Quartz trigger [" + triggerName + "].", e);
        }

        String scheduleSubQuery = (String) jobDataMap.get(MeasurementScheduleManagerBean.SCHEDULE_SUBQUERY);
View Full Code Here

        }
        if (selectedItems == null || selectedItems.length == 0) {
            throw new IllegalStateException("No job selected to execute");
        }

        SchedulerLocal scheduler = LookupUtil.getSchedulerBean();

        for (String jobIdString : selectedItems) {
            ResourceOperationSchedule resourceSchedule;
            try {
                resourceSchedule = manager.getResourceOperationSchedule(subject, jobIdString);
            } catch (SchedulerException se) {
                throw new IllegalStateException(se.getMessage(), se);
            }

            JobDetail jobDetail = scheduler.getJobDetail(resourceSchedule.getJobName(), resourceSchedule.getJobGroup());
            scheduleOperation(subject, resourceSchedule.getOperationName(), resourceSchedule.getParameters(),
                (SimpleTrigger) QuartzUtil.getFireOnceImmediateTrigger(jobDetail), resourceSchedule.getDescription());
        }

        return "viewOperationHistory";
View Full Code Here

    protected void init() {
        if (this.schedule == null) {
            Subject subject = EnterpriseFacesContextUtility.getSubject();
            String jobId = FacesContextUtility.getRequiredRequestParameter("jobId");
            SchedulerLocal scheduler = LookupUtil.getSchedulerBean();

            try {
                this.schedule = getOperationSchedule(subject, jobId);
            } catch (Exception e) {
                // capture all known info and throw a RuntimeException
                throw new IllegalStateException(e.getMessage(), e);
            }

            this.parameters = new OperationParameters(this.schedule);

            String jobName = schedule.getJobName();
            String jobGroup = schedule.getJobGroup();
            SimpleTrigger quartzTrigger = null;

            try {
                quartzTrigger = (SimpleTrigger) scheduler.getTrigger(jobName, jobGroup);
            } catch (SchedulerException se) {
                // capture all known info and throw a RuntimeException
                throw new IllegalStateException(se.getMessage(), se);
            }
View Full Code Here

    }

    private void unscheduleJob(JobDataMap jobDataMap) {
        final String triggerName = (String) jobDataMap.get(KEY_TRIGGER_NAME);
        final String triggerGroupName = (String) jobDataMap.get(KEY_TRIGGER_GROUP_NAME);
        SchedulerLocal scheduler = LookupUtil.getSchedulerBean();
        try {
            scheduler.unscheduleJob(triggerName, triggerGroupName);
        } catch (SchedulerException e) {
            log.error("Failed to unschedule Quartz trigger [" + triggerName + "].", e);
        }
    }
View Full Code Here

        jobDataMap.putAsString(ContentProviderSyncJob.DATAMAP_SYNC_IMPORTED_REPOS, true);

        SimpleTrigger trigger = new SimpleTrigger(job.getName(), job.getGroup());
        trigger.setVolatility(false);

        SchedulerLocal scheduler = LookupUtil.getSchedulerBean();
        Date next = scheduler.scheduleJob(job, trigger);

        getLog().info(
            "Scheduled content source sync job [" + job.getName() + ':' + job.getGroup() + "] to fire now at ["
                + next + "] for [" + contentSource + "].");
    }
View Full Code Here

        JobDetail job = new JobDetail(jobName, REPO_SYNC_JOB_IMMEDIATE_GROUP_NAME, RepoSyncJob.class, false, false,
            false);

        RepoSyncJob.createJobDataMap(job, repo);
        Date nextExecution;
        SchedulerLocal scheduler = LookupUtil.getSchedulerBean();
        Trigger trigger = scheduler.getTrigger(jobName, REPO_SYNC_JOB_IMMEDIATE_GROUP_NAME);
        if (trigger == null) {
            trigger = new SimpleTrigger(jobName, job.getGroup());
            trigger.setVolatility(false);
            nextExecution = scheduler.scheduleJob(job, trigger);
        } else {
            nextExecution = scheduler.rescheduleJob(jobName, REPO_SYNC_JOB_IMMEDIATE_GROUP_NAME, trigger);
        }
        getLog().info(
            "Scheduled repo sync job [" + job.getName() + ':' + job.getGroup() + "] to fire now at [" + nextExecution
                + "] for [" + repo + "].");
    }
View Full Code Here

TOP

Related Classes of org.rhq.enterprise.server.scheduler.SchedulerLocal

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.