有人知道为什么这样的蚂蚁任务吗:
public void execute() {
Timer timer = new Timer();
TimerTask action = new TimerTask() {
@SuppressWarnings("ResultOfMethodCallIgnored")
public void run() {
String urlsForCheckPath = arachniBinPath + "urls.txt";
List<String> urlsForCheck;
try {
urlsForCheck = FileUtils.readLines(new File(urlsForCheckPath));
if (urlsForCheck != null) {
for (String urlForCheck : urlsForCheck) {
new File(arachniLogPath).delete();
clearTemporary(urlForCheck);//if something remains after exceptions
logger.info(urlForCheck + " previous log and possibly remaining temporary files deleted.");
checkURL(urlForCheck);
urlForCheck = urlForCheck.replace("/", "-");
convertAndSend(urlForCheck);
clearTemporary(urlForCheck);
logger.info(urlForCheck + " temporary files deleted.");
}
}
} catch (Exception e) {
log(e);
}
}
};
timer.schedule(action, delayBeforeStart);
}
在主方法中正常,但在之后停止
logger.info(urlForCheck + " previous log and possibly remaining temporary files deleted.");
在通过ant执行的过程中没有异常?如何修复?
我认为你应该阅读这个答案。Java:等待TimerTask完成后再继续执行
小示例:
protected final Timer timer = new Timer();
public void execute() {
CountDownLatch latch = new CountDownLatch(1);
timer.schedule(new TimerTask() {
public void run() {
}
}, delayBeforeStart);
try {
latch.await();
} catch (InterruptedException e) {
log(e);
}
timer.cancel();
}