J'écris une application autonome Java) pour lire les données de YouTube. Je souhaite configurer un travail cron pour effectuer certains travaux toutes les heures.
Je cherche et trouve des moyens de faire un travail cron pour les opérations de base mais pas pour une application Java.
Vous pouvez utiliser TimerTask for Cronjobs.
Main.Java
public class Main{
public static void main(String[] args){
Timer t = new Timer();
MyTask mTask = new MyTask();
// This task is scheduled to run every 10 seconds
t.scheduleAtFixedRate(mTask, 0, 10000);
}
}
MyTask.Java
class MyTask extends TimerTask{
public MyTask(){
//Some stuffs
}
@Override
public void run() {
System.out.println("Hi see you after 10 seconds");
}
}
Alternative Vous pouvez également utiliser ScheduledExecutorService .
Premièrement, je vous recommanderais de toujours vous référer à docs avant de commencer une nouvelle chose.
Nous avons SchedulerFactory
qui planifie le travail en fonction de l’expression Cron qui lui est donnée.
//Create instance of factory
SchedulerFactory schedulerFactory=new StdSchedulerFactory();
//Get schedular
Scheduler scheduler= schedulerFactory.getScheduler();
//Create JobDetail object specifying which Job you want to execute
JobDetail jobDetail=new JobDetail("myJobClass","myJob1",MyJob.class);
//Associate Trigger to the Job
CronTrigger trigger=new CronTrigger("cronTrigger","myJob1","0 0/1 * * * ?");
//Pass JobDetail and trigger dependencies to schedular
scheduler.scheduleJob(jobDetail,trigger);
//Start schedular
scheduler.start();
MyJob.class
public class MyJob implements Job{
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
System.out.println("My Logic");
}
}
Si vous utilisez unix, vous devez écrire un shellscript pour pouvoir exécuter votre Java batch en premier).
Après cela, sous Unix, vous exécutez cette commande "crontab -e
"pour éditer le script crontab. Pour configurer crontab, référez-vous à cet article http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/
Enregistrez votre paramètre de crontab. Ensuite, attendez le moment venu, le programme se lancera automatiquement.