Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java crawler4j与TimerTask一起使用时不工作_Java_Timer_Timertask_Crawler4j - Fatal编程技术网

Java crawler4j与TimerTask一起使用时不工作

Java crawler4j与TimerTask一起使用时不工作,java,timer,timertask,crawler4j,Java,Timer,Timertask,Crawler4j,我们一直在尝试使用爬虫,这样我们就可以在一定的时间间隔内抓取特定的网站。为此,我们一直在尝试将爬虫程序合并到计时器中。但在第一次使用计时器成功爬行后,控制台中总是显示: 看起来没有线程在工作,等待10秒以确保。。。 没有线程正在工作,也没有更多的URL在队列中等待10秒以确保。。。 所有爬虫程序都已停止。完成这个过程。。。 在最终清理之前等待10秒。。。 爬虫调度程序完成时间:2014年11月19日星期三18:41:36 对于使用计时器的每个后续爬网。爬虫程序不再工作。我们检查了源代码以找出原因

我们一直在尝试使用爬虫,这样我们就可以在一定的时间间隔内抓取特定的网站。为此,我们一直在尝试将爬虫程序合并到计时器中。但在第一次使用计时器成功爬行后,控制台中总是显示:

看起来没有线程在工作,等待10秒以确保。。。 没有线程正在工作,也没有更多的URL在队列中等待10秒以确保。。。 所有爬虫程序都已停止。完成这个过程。。。 在最终清理之前等待10秒。。。 爬虫调度程序完成时间:2014年11月19日星期三18:41:36

对于使用计时器的每个后续爬网。爬虫程序不再工作。我们检查了源代码以找出原因,但失败了

代码如下:

公共类爬虫调度程序扩展TimerTask{

@Override
public void run() {
    try {
        System.out.println("CrawlerScheduler started at:"+new Date());
        int numberOfCrawlers = 1;
        String crawlStorageFolder = ".";       
        CrawlConfig crawlConfig = new CrawlConfig();
        crawlConfig.setCrawlStorageFolder(crawlStorageFolder);
        PageFetcher pageFetcher = new PageFetcher(crawlConfig);       
        RobotstxtConfig robotstxtConfig = new RobotstxtConfig();
        RobotstxtServer robotstxtServer = new RobotstxtServer(robotstxtConfig, pageFetcher);
        CrawlController controller = new CrawlController(crawlConfig, pageFetcher, robotstxtServer);       
        controller.addSeed("http://wwwnc.cdc.gov/travel/destinations/list");       
        controller.start(Crawler.class, numberOfCrawlers);           
        System.out.println("CrawlerScheduler finished at:"+new Date());
    } catch (Exception ex) {
        Logger.getLogger(CrawlerScheduler.class.getName()).log(Level.SEVERE, null, ex);
    }
}

public static void main(String ar[]){
    TimerTask timerTask = new CrawlerScheduler();
    Timer timer = new Timer();
    timer.scheduleAtFixedRate(timerTask,10,6*60*1000); 
    try {
        Thread.sleep(3000);
    } catch (InterruptedException ex) {
        Logger.getLogger(CrawlerScheduler.class.getName()).log(Level.SEVERE, null, ex);
    }
}
}