目前,使用cron4j
,我可以在13:01安排执行事件。虽然很好,但根据我的理解,它不允许人们在13:01:10(10秒后)安排活动。
是否有一种工具可以在调度中实现这样的粒度?
答案 0 :(得分:1)
如果您正在寻找图书馆,则应该查看Quartz。这是一个非常灵活的调度程序。
答案 1 :(得分:1)
在Java中,您可以使用Timer和Timer任务类来安排任务,例如演示
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.
}
答案 2 :(得分:0)
Timer班怎么样?它允许以固定的间隔安排执行,精确到毫秒。
答案 3 :(得分:-1)
我亲自发现quartz是一个非常复杂和强大的调度程序,因此快速入门并不容易。它可能不是一个有效的解决方案,但您可以在执行每分钟安排的任务之前sleep(long)
。
public void execute(TaskExecutionContext context){
sleep(TimeUnit.SECONDS.toMilliseconds(10));
}
我没有检查上一代码的语法,因此您可能需要对其进行验证。