최근 크롤러는 스레드 풀 (나는 스레드 풀의 스레드 고정 된 수를 만든 다음 내부 작업을 던져 계속했다)를 사용
사이트가 지금은 스레드 풀 작업에서 생각, 그래서 다시 링크를 크롤링 시작 후 상승 할 수있는 작업을 연결하는 데 필요한 경우 다시 시작하는 작업을 완료하기 위해 실행됩니다.
다음과 같이 데모입니다 :
public static void ex(Connection conn) throws InterruptedException{
UrlTask urlTask = new UrlTask(7, conn); // 自己的任务类
ExecutorService pool = Executors.newFixedThreadPool(50);// 创建一个固定数量的线程池
pool.execute(urlTask);
pool.shutdown();
boolean flag = pool.awaitTermination(1, TimeUnit.MINUTES); // 1分钟检测一次线程池中的任务是否执行完成
if (!flag) {
ex(conn);//线程次中的任务执行完成后再次执行
}
}