我有来自不同SOURCES的LOG FILES(即S1Log,S2Log,S3Log等),我想每天上传到服务器。程序应该在白天的特定时间上传每个日志文件(S1Log在上午9点,S2Log在下午3点,S3Log在下午6点)。在某些随机的日子里,我们不想遵循这个时间表,因此我们会阻止部分或全部文件上传。但是,第二天应该像往常一样遵循常规时间表。
我不确定如何安排这些任务。 JodaTime是否适合这个或者我应该使用java.util.Timer和/或javax.swing.Timer吗?
还有其他成熟且受欢迎的API,比如Joda可以帮我制作代码吗?
答案 0 :(得分:1)
用于创建调度程序的标准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.util.Timer 的基于Java的计时器,这是一个教程。 http://javapapers.com/core-java/java-timer/
但是选择哪一个......?让我让你变得更加困难
Pros and cons of using java.util.timer vs Quartz for scheduling?
和
http://java.dzone.com/articles/why-you-shouldnt-use-quartz
可能评论可以帮助解决这个问题..