我正在将myava实现到myApp中的模块中,我很难理解AbstractScheduledService的工作原理,我的目标是制作一个不时运行的服务,但我希望通过代码,设置在不同的时间运行间隔。 所以我的问题是:如何更新迭代之间的延迟时间间隔?
我的代码到目前为止
public class Service extends AbstractScheduledService {
public String id;
private int timeInterval;
private TimeUnit unit;
public boolean keepAsking;
/**
*
* @param newTimeInterval
* @param newTimeUnit
*/
public void pauseAndUpdate(int newTimeInterval, TimeUnit newTimeUnit) throws Exception {
this.shutDown();
timeInterval = newTimeInterval;
unit = newTimeUnit;
keepAsking = true;
this.startAndWait();
}
protected Scheduler scheduler() {
System.out.println("Scheduling : "+ timeInterval + unit);
return Scheduler.newFixedRateSchedule(0, timeInterval, unit);
}
public Service(int timeInterval,TimeUnit unit){
super();
id = "XPTO";
this.timeInterval = timeInterval;
this.unit = unit;
keepAsking = true;
}
public void pauseAndUpdate(int newTimeInterval) throws Exception {
pauseAndUpdate(newTimeInterval,this.unit);
}
@Override
protected void runOneIteration() throws Exception {
System.out.println("Running");
if(!keepAsking) {
stop();
}
}