diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java b/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java index efff6ec..c5c239f 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java @@ -2,7 +2,6 @@ package us.codecraft.webmagic; import org.apache.commons.collections.CollectionUtils; import org.apache.log4j.Logger; -import us.codecraft.webmagic.downloader.Destroyable; import us.codecraft.webmagic.downloader.Downloader; import us.codecraft.webmagic.downloader.HttpClientDownloader; import us.codecraft.webmagic.pipeline.ConsolePipeline; @@ -12,6 +11,8 @@ import us.codecraft.webmagic.scheduler.QueueScheduler; import us.codecraft.webmagic.scheduler.Scheduler; import us.codecraft.webmagic.utils.ThreadUtils; +import java.io.Closeable; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutorService; @@ -279,8 +280,12 @@ public class Spider implements Runnable, Task { } private void destroyEach(Object object) { - if (object instanceof Destroyable) { - ((Destroyable) object).destroy(); + if (object instanceof Closeable) { + try { + ((Closeable) object).close(); + } catch (IOException e) { + e.printStackTrace(); + } } } diff --git a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/Destroyable.java b/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/Destroyable.java deleted file mode 100644 index 6dcbde1..0000000 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/downloader/Destroyable.java +++ /dev/null @@ -1,13 +0,0 @@ -package us.codecraft.webmagic.downloader; - -/** - * 比较占用资源的服务可以实现该接口,Spider会在结束时调用destroy()释放资源。
- * @author code4crafter@gmail.com
- * Date: 13-7-26
- * Time: 下午3:10
- */ -public interface Destroyable { - - public void destroy(); - -} diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/OOSpider.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/OOSpider.java index bff5a3a..d7f2b87 100644 --- a/webmagic-extension/src/main/java/us/codecraft/webmagic/model/OOSpider.java +++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/model/OOSpider.java @@ -56,7 +56,7 @@ public class OOSpider extends Spider { public OOSpider(Site site, PageModelPipeline pageModelPipeline, Class... pageModels) { this(ModelPageProcessor.create(site, pageModels)); this.modelPipeline = new ModelPipeline(); - super.pipeline(modelPipeline); + super.addPipeline(modelPipeline); if (pageModelPipeline!=null){ for (Class pageModel : pageModels) { this.modelPipeline.put(pageModel, pageModelPipeline); diff --git a/webmagic-selenium/src/main/java/us/codecraft/webmagic/downloader/selenium/SeleniumDownloader.java b/webmagic-selenium/src/main/java/us/codecraft/webmagic/downloader/selenium/SeleniumDownloader.java index 0fa0eea..3d4fcdb 100644 --- a/webmagic-selenium/src/main/java/us/codecraft/webmagic/downloader/selenium/SeleniumDownloader.java +++ b/webmagic-selenium/src/main/java/us/codecraft/webmagic/downloader/selenium/SeleniumDownloader.java @@ -9,12 +9,13 @@ import us.codecraft.webmagic.Page; import us.codecraft.webmagic.Request; import us.codecraft.webmagic.Site; import us.codecraft.webmagic.Task; -import us.codecraft.webmagic.downloader.Destroyable; import us.codecraft.webmagic.downloader.Downloader; import us.codecraft.webmagic.selector.Html; import us.codecraft.webmagic.selector.PlainText; import us.codecraft.webmagic.utils.UrlUtils; +import java.io.Closeable; +import java.io.IOException; import java.util.Map; /** @@ -25,7 +26,7 @@ import java.util.Map; * Date: 13-7-26
* Time: 下午1:37
*/ -public class SeleniumDownloader implements Downloader, Destroyable { +public class SeleniumDownloader implements Downloader, Closeable { private volatile WebDriverPool webDriverPool; @@ -104,7 +105,7 @@ public class SeleniumDownloader implements Downloader, Destroyable { } @Override - public void destroy() { + public void close() throws IOException { webDriverPool.closeAll(); } }