我正在編寫一個獨立的批處理Java應用程序來從YouTube讀取數據。我想設置一個cron工作來每小時完成一定的工作。如何創建Java cron作業
我搜索並找到了爲基本操作執行cron作業的方法,但不能用於Java應用程序。
我正在編寫一個獨立的批處理Java應用程序來從YouTube讀取數據。我想設置一個cron工作來每小時完成一定的工作。如何創建Java cron作業
我搜索並找到了爲基本操作執行cron作業的方法,但不能用於Java應用程序。
如果你使用的是unix,你需要編寫一個shell腳本來首先運行你的java批處理。
之後,在unix中,運行此命令「crontab -e
」編輯crontab腳本。 爲了配置crontab,請參考這篇文章http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/
保存你的crontab設置。然後等待時間到來,程序將自動運行。
我已經嘗試過這一點。但是這並不能提供在Cron中運行Java程序的解決方案。 – user3138111
@ user3138111:爲什麼不呢?你補充什麼?如何:'0 * * * * java -cp yourpath SomeClass'或'@hourly java -cp yourpath SomeClass' –
我創建了一個helloworld Java類來將它寫入文件。但是我無法看到生成的輸出文件。這是我的cron作業文本1 * * * * java -cp HelloWorld。 HelloWorld類包含以下文本\t \t PrintWriter out = new PrintWriter(new FileWriter(「/ output.txt」,true)); \t \t out。的println( 「RAM」); \t \t out.close(); – user3138111
首先,我會建議你在開始新事物之前總是參考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");
}
}
你的'docs'是指第三方庫...並且OP在詢問有關啓動java程序的cron作業的設置。你似乎在你的代碼中設置了一份工作。 –
Downvoting使用第三方庫而不提。 – sangupta
Upvoting,因爲這是我所需要的。 –
可以使用的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。
你是否在問如何使用Unix cron?如果您只是想讓您的Java應用程序定期工作,請參閱['ScheduledExecutorService'](http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledExecutorService.html) 。這個內置的Java類將按照您指定的頻率運行給定的['Runnable'](http://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html)。這種方法包含在Java中,不需要像cron這樣的外部工具。 –
找到此.. https://stackoverflow.com/questions/44270994/how-make-a-job-to-determinate-date-only-once-from-java – marlonpya