現在、を使用cron4j
して、たとえば13:01にイベントの実行をスケジュールすることができます。大丈夫ですが、私が理解していることから、13:01:10(10秒後)にイベントをスケジュールすることはできません。
スケジューリングでそのような粒度を可能にするツールはありますか?
現在、を使用cron4j
して、たとえば13:01にイベントの実行をスケジュールすることができます。大丈夫ですが、私が理解していることから、13:01:10(10秒後)にイベントをスケジュールすることはできません。
スケジューリングでそのような粒度を可能にするツールはありますか?
ライブラリを探している場合は、Quartzを調べる必要があります。これは非常に柔軟なスケジューラーです。
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.
}
タイマークラスはどうですか?ミリ秒単位の精度で定期的に実行をスケジュールできます。
私は個人的にクォーツが非常に複雑で強力なスケジューラーであると感じているので、すぐに始めるのは簡単ではありません。sleep(long)
これは効果的な解決策ではないかもしれませんが、毎分スケジュールされたタスクの実行前に行うことができます。
public void execute(TaskExecutionContext context){
sleep(TimeUnit.SECONDS.toMilliseconds(10));
}
前のコードの構文をチェックしていないので、それを検証する必要があるかもしれません。