How to create a Java cron job [duplicate]

I'm writing a standalone batch Java application to read data from YouTube. I want to set up an cron job to do certain job every hour.

I search and found ways to do a cron job for basic operations but not for a Java application.

2

3 Answers

You can use 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 You can also use ScheduledExecutorService.

1

First I would recommend you always refer docs before you start a new thing.

We have SchedulerFactory which schedules Job based on the Cron Expression given to it.

 //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"); } } 
1

If you are using unix, you need to write a shellscript to run you java batch first.

After that, in unix, you run this command "crontab -e" to edit crontab script. In order to configure crontab, please refer to this article

Save your crontab setting. Then wait for the time to come, program will run automatically.

4

You Might Also Like