質問

のScheduledExecutorService Javaはハンディタスクの繰り返しのいずれか一定間隔で固定します。破壊も修復もおもしろくないように、既存のScheduledExecutorServiceをまとめて見ることができる指定時間に一日のスケジュールタスク時ではなく、間隔る"私は、この課題に火午前10時の各デー"を開催しました。

いまでこれを達成石英ないと思いない図書館利用可能な場合(この図書館がいと思いない依存関係のための数理由).

役に立ちましたか?

解決

タイマークラス。具体的には、scheduleAtFixedRate(TimerTaskタスク、Date firstTime、long period)。特定の日の午前10時に開始し、24時間ごとに繰り返すようにタスクを設定できます。

他のヒント

ThreadPoolTaskSchedulerでき、外部のスレッド管理対象とする。社内での代表者へ ScheduledExecutorService インスタンス. ThreadPoolTaskScheduler 実施の TaskExecutor ス、単一のインスタンスに使用できる非同期の実行などを予定し、潜在的に経常、裁判なしの処刑.

場としてCronTrigger()かcronExpression http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/support/CronSequenceGenerator.html

詳このソリューションを参照春docs: https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html

import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
import org.springframework.scheduling.support.CronTrigger;
import java.util.Date;

public class CronTriggerSpringTest{
public static void main(String args[]){
    String cronExpression = "0/5 * * * * *";
    ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
    scheduler.initialize();
    scheduler.schedule(new Runnable() {
        @Override
        public void run() {
            System.out.println("Hello Date:"+new Date());
        }
    }, new CronTrigger(cronExpression));
}
}

scheduleAtFixedRateを使用すると、遅延が発生します。そのため、遅延は午前10時までの差になり、期間は24時間になります。 これは少しでもドリフトする可能性があります。タイマーを使用しても、毎回適切な遅延でScheduledExecutorServiceに自分自身を追加するタスクをスケジュールできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top