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