0

毎日サーバーにアップロードしたいさまざまなソースからのログファイル(つまり、S1Log、S2Log、S3Logなど)があります。プログラムは、1日の特定の時間に各ログファイルをアップロードする必要があります(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 に答える