All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.blazebit.quartz.JobUtils Maven / Gradle / Ivy

There is a newer version: 0.1.14
Show newest version
/*
 * Copyright 2011 Blazebit
 */
package com.blazebit.quartz;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobKey;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.impl.matchers.GroupMatcher;

/**
 * 
 * @author Christian Beikov
 * @since 0.1.2
 */
public class JobUtils {

	public static void add(Scheduler sched, Class clazz,
			String jobName, String jobGroup,
			Map dataMap) throws SchedulerException {
		sched.addJob(create(clazz, jobName, jobGroup, dataMap, true), false);
	}

	public static void schedule(Scheduler sched, Class clazz,
			String jobName, String jobGroup,
			Map dataMap) throws SchedulerException {
		Trigger trigger = TriggerUtils.simple(null, null, jobName, jobGroup,
				null, null, null);
		schedule(sched, clazz, jobName, jobGroup, dataMap, trigger);
	}

	public static void schedule(Scheduler sched, Class clazz,
			String jobName, String jobGroup,
			Map dataMap, Trigger trigger)
			throws SchedulerException {
		add(sched, clazz, jobName, jobGroup, dataMap);
		TriggerUtils.schedule(trigger);
	}

	public static void pause(Scheduler sched, JobDetail job)
			throws SchedulerException {
		pause(sched, job.getKey());
	}

	public static void pause(Scheduler sched, JobKey key)
			throws SchedulerException {
		sched.pauseJob(key);
	}

	public static void resume(Scheduler sched, JobDetail job)
			throws SchedulerException {
		resume(sched, job.getKey());
	}

	public static void resume(Scheduler sched, JobKey key)
			throws SchedulerException {
		sched.resumeJob(key);
	}

	public static void delete(Scheduler sched, JobDetail job)
			throws SchedulerException {
		delete(sched, job.getKey());
	}

	public static void delete(Scheduler sched, JobKey key)
			throws SchedulerException {
		sched.deleteJob(key);
	}

	public static void trigger(Scheduler sched, JobDetail job)
			throws SchedulerException {
		trigger(sched, job.getKey());
	}

	public static void trigger(Scheduler sched, JobKey key)
			throws SchedulerException {
		sched.triggerJob(key);
	}

	public static List getJobs(Scheduler sched)
			throws SchedulerException {
		List jobDetails = new ArrayList();
		List jobGroups = sched.getJobGroupNames();

		for (int i = 0; i < jobGroups.size(); i++) {
			String name = jobGroups.get(i);
			Set keys = sched.getJobKeys(GroupMatcher
					.jobGroupEquals(name));
			Iterator iter = keys.iterator();

			while (iter.hasNext()) {
				jobDetails.add(sched.getJobDetail(iter.next()));
			}
		}

		return jobDetails;
	}

	public static List getTriggers(Scheduler sched, JobDetail job)
			throws SchedulerException {
		return getTriggers(sched, job.getKey());
	}

	@SuppressWarnings("unchecked")
	public static List getTriggers(Scheduler sched, JobKey key)
			throws SchedulerException {
		return (List) sched.getTriggersOfJob(key);
	}

	private static JobDetail create(Class clazz, String jobName,
			String jobGroup, Map dataMap,
			boolean durable) throws SchedulerException {
		return JobBuilder.newJob(clazz).withIdentity(jobName, jobGroup)
				.usingJobData(new JobDataMap(dataMap)).storeDurably(durable)
				.build();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy