我正在编写一个独立的批量Java应用程序来从YouTube读取数据。我想建立一个cron工作,每小时做一些工作。
我搜索并找到了为基本操作执行cron作业的方法,但不是Java应用程序。
答案 0 :(得分:38)
您可以将TimerTask用于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");
}
}
<强>替代强> 您也可以使用ScheduledExecutorService。
答案 1 :(得分:6)
首先,我建议您在开始新事物之前始终参考docs。
我们SchedulerFactory
根据给予的Cron表达式调度Job。
//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");
}
}
答案 2 :(得分:3)
如果您使用的是unix,则需要先编写一个shellcript来运行java批处理。
之后,在unix中,运行此命令“crontab -e
”来编辑crontab脚本。
要配置crontab,请参阅此文章http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/
保存您的crontab设置。然后等待时间到来,程序将自动运行。