我正在编写一个独立的批处理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