3

現在、を使用cron4jして、たとえば13:01にイベントの実行をスケジュールすることができます。大丈夫ですが、私が理解していることから、13:01:10(10秒後)にイベントをスケジュールすることはできません。

スケジューリングでそのような粒度を可能にするツールはありますか?

4

4 に答える 4

1

ライブラリを探している場合は、Quartzを調べる必要があります。これは非常に柔軟なスケジューラーです。

于 2012-08-31T19:43:12.530 に答える
1

Javaでは、デモなどのタイマーおよびタイマータスククラスを使用してタスクをスケジュールできます。

import java.util.Timer;
import java.util.TimerTask;
public class MyTask extends TimerTask{
    Timer timer;
    int count=0;
    public MyTask(){        
    }
    public MyTask(Timer timer){
        this.timer=timer;
    }
    public void toDo(){
        System.out.println("count-> "+(count++));        
    }
    @Override
    public void run() {
        toDo();
        if(count>10){//this is the condition when you want to stop the task.
            timer.cancel();
        }
    }
}

このタイマーでは、次のように実行できます

public static void main(String[] args){
     Timer timer=new Timer();
     MyTask myTask=new MyTask(timer);
     int firstSart=1000;// it means after 1 second.
     int period=1000*2;//after which the task repeat;
     timer.schedule(myTask,firstSart,period);//the time specified in millisecond.     
 }
于 2013-01-27T16:26:20.127 に答える
0

タイマークラスはどうですか?ミリ秒単位の精度で定期的に実行をスケジュールできます。

于 2012-08-31T19:42:33.440 に答える
-1

私は個人的にクォーツが非常に複雑で強力なスケジューラーであると感じているので、すぐに始めるのは簡単ではありません。sleep(long)これは効果的な解決策ではないかもしれませんが、毎分スケジュールされたタスクの実行前に行うことができます。

public void execute(TaskExecutionContext context){
    sleep(TimeUnit.SECONDS.toMilliseconds(10));
}

前のコードの構文をチェックしていないので、それを検証する必要があるかもしれません。

于 2013-01-27T16:12:42.250 に答える