WebMagic监控方案设计

这是0.5.0新增的功能,目前仍在开发和测试中,欢迎提出意见。

目前的计划是:提供JMX API,可以使用JConsole等工具连接,然后在外部提供一个Web项目,可以在Web页面上进行监控。欢迎去github #issue98反馈意见。

监控的启动方式

实例化一个SpiderMonitor即可。

public static void main(String[] args) throws JMException,
        NullPointerException,
        IOException {
    Spider oschinaSpider = Spider.create(new OschinaBlogPageProcessor())
            .addUrl("http://my.oschina.net/flashsword/blog").thread(2);
    Spider githubSpider = Spider.create(new GithubRepoPageProcessor())
            .addUrl("https://github.com/code4craft");
    SpiderMonitor spiderMonitor = new SpiderMonitor();
    spiderMonitor.register(oschinaSpider, githubSpider);
    spiderMonitor.jmxStart();
}

监控接口

这个监控接口会包含抓取的URL等信息。

public interface SpiderStatusMBean {

    public String getName();

    public String getStatus();

    public int getThread();

    public int getTotalPageCount();

    public int getLeftPageCount();

    public int getSuccessPageCount();

    public int getErrorPageCount();

    public List<String> getErrorPages();

    public void start();

    public void stop();

}

监控界面

,可以启动、终止一个爬虫,也可以查看状态。

WebMagic监控方案设计_第1张图片

定制扩展

你可以通过继承SpiderStatusMBean来实现扩展,具体例子可以看这里:
定制扩展demo

你可能感兴趣的:(jmx,webmagic)