Commit b838c4e4 authored by yihua.huang's avatar yihua.huang

#34 Close reader in FileCacheQueueScheduler

parent d48ccc67
Release Notes Release Notes
---- ----
See old versions in [https://github.com/code4craft/webmagic/releases](https://github.com/code4craft/webmagic/releases) See latest versions in [https://github.com/code4craft/webmagic/releases](https://github.com/code4craft/webmagic/releases)
*2012-9-4* `version:0.3.0` *2012-9-4* `version:0.3.0`
......
...@@ -46,4 +46,12 @@ public class BaiduBaike{ ...@@ -46,4 +46,12 @@ public class BaiduBaike{
} }
ooSpider.close(); ooSpider.close();
} }
public String getName() {
return name;
}
public String getDescription() {
return description;
}
} }
package us.codecraft.webmagic.scheduler; package us.codecraft.webmagic.scheduler;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.math.NumberUtils; import org.apache.commons.lang3.math.NumberUtils;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import us.codecraft.webmagic.Request; import us.codecraft.webmagic.Request;
...@@ -94,6 +95,9 @@ public class FileCacheQueueScheduler implements Scheduler { ...@@ -94,6 +95,9 @@ public class FileCacheQueueScheduler implements Scheduler {
urls = new LinkedHashSet<String>(); urls = new LinkedHashSet<String>();
readCursorFile(); readCursorFile();
readUrlFile(); readUrlFile();
} catch (FileNotFoundException e) {
//init
logger.info("init cache file " + getFileName(fileUrlAllName));
} catch (IOException e) { } catch (IOException e) {
logger.error("init file error", e); logger.error("init file error", e);
} }
...@@ -101,23 +105,37 @@ public class FileCacheQueueScheduler implements Scheduler { ...@@ -101,23 +105,37 @@ public class FileCacheQueueScheduler implements Scheduler {
private void readUrlFile() throws IOException { private void readUrlFile() throws IOException {
String line; String line;
BufferedReader fileUrlReader = new BufferedReader(new FileReader(getFileName(fileUrlAllName))); BufferedReader fileUrlReader = null;
int lineReaded = 0; try {
while ((line = fileUrlReader.readLine()) != null) { fileUrlReader = new BufferedReader(new FileReader(getFileName(fileUrlAllName)));
urls.add(line.trim()); int lineReaded = 0;
lineReaded++; while ((line = fileUrlReader.readLine()) != null) {
if (lineReaded > cursor.get()) { urls.add(line.trim());
queue.add(new Request(line)); lineReaded++;
if (lineReaded > cursor.get()) {
queue.add(new Request(line));
}
}
} finally {
if (fileUrlReader != null) {
IOUtils.closeQuietly(fileUrlReader);
} }
} }
} }
private void readCursorFile() throws IOException { private void readCursorFile() throws IOException {
BufferedReader fileCursorReader = new BufferedReader(new FileReader(getFileName(fileCursor))); BufferedReader fileCursorReader = null;
String line; try {
//read the last number new BufferedReader(new FileReader(getFileName(fileCursor)));
while ((line = fileCursorReader.readLine()) != null) { String line;
cursor = new AtomicInteger(NumberUtils.toInt(line)); //read the last number
while ((line = fileCursorReader.readLine()) != null) {
cursor = new AtomicInteger(NumberUtils.toInt(line));
}
} finally {
if (fileCursorReader != null) {
IOUtils.closeQuietly(fileCursorReader);
}
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment