HttpClientDownloader应该要实现Closeable接口吧 #413

Open
zhongshan365 opened this Issue Dec 8, 2016 · 1 comment

Projects

None yet

2 participants

@zhongshan365

组件spider的close()方法是为了释放了组件资源,但是downloader并没有实现Closeable接口。其他组件pageProcessor、scheduler、pipeline也没有实现这个接口。请问是我的理解问题吗?

public void close() {
        destroyEach(downloader);
        destroyEach(pageProcessor);
        destroyEach(scheduler);
        for (Pipeline pipeline : pipelines) {
            destroyEach(pipeline);
        }
        threadPool.shutdown();
    }

    private void destroyEach(Object object) {
        if (object instanceof Closeable) {//这里if条件并不成立,所以里面没有执行,并不会打印错误信息
            try {
                ((Closeable) object).close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }```
@code4craft
Owner

因为没有特意要释放的资源啊,一个特例是SeleniumDownloader。
这个跟Servlet规范的onDesrtoy其实同理,觉得没必要就没有实现这个接口了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment