La planification des tâches avec Quartz
Les objets Quartz
Les jobs
Il faut maintenant créer une tâche qui sera planifiée ultérieurement. Nous commençerons par créer une classe de Job. Cette classe implémente la classe Job, qui lui confère la méthode exécute qu'il faut réimplémenter. Ici, nous écrivons simplement "bonjour..." dans une console.
public class Bonjour implements Job{
//Dans la méthode exécute, on écrit le code correspondant à la tâche
public void execute (JobExecutionContext context) throws JobExecutionException {
try {
system.out.println("Bonjour...");
} catch(Exception e) {
throw new JobExecutionException();
}
}
Pour instancier le Job, nous avons besoin d'une nouvelle classe appelée JobDetail. Cette classe est indispensable à l'activation du Job.
//Les arguments d'un JobDetail sont le nom du job, puis le scheduler, et enfin le nom de la classe du job.
JobDetail jd1 = new JobDetail("Bonjour", Scheduler.DEFAULT_GROUP, Bonjour.class);
Par ailleurs, il est possible de passer des paramètres à un Job grâce à une table de hashage. Ce programme écrit donc "Au revoir..." passé en paramètre.
On utilise la classe JobDataMap comme suit :
/************************************A l'instanciation du Job********************************************/
//On crée une instance de JobDataMap.
JobDataMap map2 = new JobDataMap();
//le premier argument est le nom de la variable, le second la valeur.
map2.put("message", "Au revoir...");
//On fixe la table de hashage sur le job
jobDetail.setJobDataMap(map2);
/************************************Dans la méthode execute du Job**************************************/
//On peut donc récupérer l'argument
public void execute (JobExecutionContext context) throws JobExecutionException {
try {
//On récupère la map du contexte
JobDataMap map = context.getJobDetail().getJobDataMap();
//On écrit l'argument dans la console
System.out.println(map.getString("message"));
}catch(Exception e){
throw new JobExecutionException();
}