0

我有来自不同来源的日志文件(即 S1Log、S2Log、S3Log 等),我想每天上传到服务器。程序应在一天中的特定时间上传每个日志文件(S1Log 上午 9 点,S2Log 下午 3 点,S3Log 下午 6 点)。在某些随机的日子里,我们不想遵循这个时间表,所以我们会阻止部分或全部文件上传。但是,第二天应该像往常一样遵循常规的时间表。

我不确定如何安排这些任务。JodaTime 是否适合这个,或者我应该使用 java.util.Timer 和/或 javax.swing.Timer 代替?

有没有像 Joda 这样的成熟流行的 API 可以帮助我编写代码?

4

1 回答 1

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/

但是该选择哪一个...?让我让你更难

使用 java.util.timer 与 Quartz 进行调度的优缺点?

http://java.dzone.com/articles/why-you-shouldnt-use-quartz

可能评论可以帮助解决这个问题..

于 2013-03-06T11:17:20.587 回答