目前,使用cron4j
,我可以安排在 13:01 执行事件。虽然很好,但据我了解,它不允许在 13:01:10(10 秒后)安排活动。
有没有一种工具可以在调度中实现这种粒度?
目前,使用cron4j
,我可以安排在 13:01 执行事件。虽然很好,但据我了解,它不允许在 13:01:10(10 秒后)安排活动。
有没有一种工具可以在调度中实现这种粒度?
在 Java 中,您可以使用 Timer 和 Timer 任务类来安排任务,例如 demo
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.
}
如果您正在寻找图书馆,您应该查看Quartz。它是一个非常灵活的调度器。
Timer类呢?它允许以精确到毫秒的定期间隔安排执行。
我个人觉得石英是一个非常复杂和强大的调度器,所以快速上手并不容易。它可能不是一个有效的解决方案,但您可以sleep(long)
在执行每分钟安排的任务之前。
public void execute(TaskExecutionContext context){
sleep(TimeUnit.SECONDS.toMilliseconds(10));
}
我没有检查前面代码的语法,所以您可能需要验证它。