Est-il possible de créer un travail qui déclenchera immédiatement? Lorsque je veux que le travail soit déclenché, j’ai créé une chaîne d’expression cron avec la date et l’heure actuelles; travail immédiatement?
Merci d'avance.
Tous les travaux enregistrés dans Quartz Scheduler sont identifiés de manière unique par la touche JobKey qui est composée d'un nom et d'un groupe. Vous pouvez lancer le travail qui a un JobKey immédiatement en appelant triggerJob (JobKey jobKey) de votre Scheduler instance.
//Create a new Job
JobKey jobKey = JobKey.jobKey("myNewJob", "myJobGroup");
JobDetail job = JobBuilder.newJob(MyJob.class).withIdentity(jobKey).storeDurably().build();
//Register this job to the scheduler
scheduler.addJob(job, true);
//Immediately fire the Job MyJob.class
scheduler.triggerJob(jobKey);
Remarque :
scheduler
est l'instance du planificateur utilisée dans toute votre application. Sa méthode start () devrait déjà être appelée après sa création.
Le travail est le travail durable qui ne peut y attacher aucun déclencheur ou cron. Il ne peut être déclenché que par programme en appelant triggerJob (JobKey jobKey) .
Oui, utilisez la variable Trigger
suivante pour lancer immédiatement votre travail au lieu d’attendre les expressions Cron.
String jobName = ""; // Your Job Name
String groupName = ""; // Your Job Group
Trigger trigger = TriggerBuilder.newTrigger()
.withIdentity(jobName, groupName)
.startNow()
.build();
Vous pouvez créer la "JobKey" à la volée avec les 2 valeurs de chaîne de clé.
IScheduler sched = /* however you get your scheduler*/;
sched.TriggerJob(new JobKey("myname", "mygroup"));