Ant任务在主方法中正常运行,但在Ant执行过程中在确定的行之后停止



有人知道为什么这样的蚂蚁任务吗:

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();
}

相关内容

最新更新