La planification des tâches avec Quartz

La gestion des jobs et des triggers

Les misfires

Un misfire correspond à l'échec de l'activation d'un job, donc il agit sur les triggers. Il permet de gérer les retards grâce à un panel de méthodes correspondant à une action particulière. Par exemple :

					
//On réenclanche directement le trigger qui a échoué			
SimpleTrigger.setMisfireInstruction(MISFIRE_INSTRUCTION_FIRE_NOW);
				

Les actions

On peut facilement gérer les jobs et les triggers avec les méthodes suivantes :

					
//suppression d'un job
mySched.deleteJob(“Bonjour”, Scheduler.DEFAULT_GROUP);

//suppression d'un trigger
mySched.unscheduledJob(“simpleTrigger”, Scheduler.DEFAULT_GROUP);

//replanification d'un job
mySched.rescheduledJob(“simpleTrigger”, Scheduler.DEFAULT_GROUP, “cronTrigger”);

//pause d'un job
mySched.pauseJobGroup(Scheduler.DEFAULT_GROUP);

//reprise d'un job
mySched.removeJobGroup(Scheduler.DEFAULT_GROUP);
					
				

Les listeners

Les listeners, quant à eux servent à notifier les événements importants de planification du programme client. Cela sert, par exemple, à mettre à jour une application en envoyant un mail.

Il existe trois niveaux de listeners :

Voici un exemple de listener :

					
class UnJobListener implements JobListener {
  
	//récupère le nom du listener
	public String getName() {
		return "unJobListener";
	}
	
	//Quand un job était sur le point de s'exécuter mais un triggerListener
	public void jobExecutionVetoed(JobExecutionContext context) {
	}
	
	//Lorsque le Job va être déclenché
	public void jobToBeExecuted(JobExecutionContext context) {
	}
	
	//Le job a terminé son exécution
	public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) {
		
		if(jobException==null) {
			//il n'y a pas eu d'exception, parfait
		} else {
			//il y a eu une exception
			System.out.println(jobException);
		}
	}
}
					
				

Il faut maintenant ajouter le listener au scheduler ainsi qu'au job.

					
sched.addJobListener(new UnJobListener());
jobDetail.addJobListener("unJobListener");
					
				



Valid XHTML 1.0!