java for循环访问数据库_java 线程循环读取数据库

我之前有一个做法就写一个定时器。20秒中执行一次。然后去判断线程池的数量。如果线程池空闲就继续去读数据库。如果线程池中的线程没处理完。就继续处理。等下一个20秒再去判断。

/**

* 截至时间20150922

*/

private int totalPages = 6778;

// 每20秒执行一次

@Scheduled(cron="*/20 * * * * ?")

public void myTest() {

System.out.println("=============================================");

System.out.println("ActiveCount :"+taskExecutor.getActiveCount());

System.out.println("PoolSize :"+taskExecutor.getPoolSize());

System.out.println("CorePoolSize :"+taskExecutor.getCorePoolSize());

System.out.println("=============================================");

if(taskExecutor.getActiveCount()<10){

System.out.println("当前页:"+page);

if(page<=totalPages){

for (int i = page; i < page+5; i++) {

taskExecutor.execute(new crawlTask(i,jobPhotosDAO,storageService));

}

page=page+5;

}else {

logger.info("抓取页码结束 {}",page);

}

}

}

我之前有一个做法就写一个定时器。20秒中执行一次。然后去判断线程池的数量。如果线程池空闲就继续去读数据库。如果线程池中的线程没处理完。就继续处理。等下一个20秒再去判断。 /** * 截至时间20150922 */ private int totalPages = 6778; // 每20秒执行一次 @Scheduled(cron="*/20 * * * * ?") public void myTest() { System.out.println("============================================="); System.out.println("ActiveCount :"+taskExecutor.getActiveCount()); System.out.println("PoolSize :"+taskExecutor.getPoolSize()); System.out.println("CorePoolSize :"+taskExecutor.getCorePoolSize()); System.out.println("============================================="); if(taskExecutor.getActiveCount()<10){ System.out.println("当前页:"+page); if(page<=totalPages){ for (int i = page; i < page+5; i++) { taskExecutor.execute(new crawlTask(i,jobPhotosDAO,storageService)); } page=page+5; }else { logger.info("抓取页码结束 {}",page); } } }
经验分享 程序员 微信小程序 职场和发展