我有日志文件(即S1Log, S2Log, S3Log等)从不同的来源,我想每天上传到服务器。程序应该在一天中的特定时间上传每个日志文件(S1Log在上午9点,S2Log在下午3点,S3Log在下午6点)。在一些随机的日子里,我们不想遵循这个时间表,所以我们阻止部分或全部文件上传。但是,第二天应该像往常一样遵循正常的时间表。
我不确定如何安排这些任务。JodaTime是否适用于此,或者我应该使用java.util.Timer和/或javax.swing.Timer代替?
是否有其他成熟和流行的API像Joda可以帮助我做我的代码?
创建调度程序的标准java解决方案是使用ScheduledExecutorService
ScheduledExecutorService scheduledExecutorService =
Executors.newScheduledThreadPool(5);
ScheduledFuture scheduledFuture =
scheduledExecutorService.schedule(new Callable() {
public Object call() throws Exception {
System.out.println("Executed!");
return "Called!";
}
},
5,
TimeUnit.SECONDS);
我还建议您使用Quartz Scheduler。这里有一个有用的教程http://www.ibm.com/developerworks/library/j-quartz/
其他选项你有一个基于Java的定时器从 Java .util。定时器,这里有一个教程。http://javapapers.com/core-java/java-timer/
但是选择哪一个…?
使用java.util.timer与Quartz进行调度的利弊?
和
http://java.dzone.com/articles/why-you-shouldnt-use-quartz可能注释可以帮助解决这个问题。