使用Java创建基于GUI的任务调度程序

时间:2013-03-06 11:11:30

标签: java user-interface timer jodatime

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

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

还有其他成熟且受欢迎的API,比如Joda可以帮我制作代码吗?

1 个答案:

答案 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

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