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 0d7d5be..5016724 100644 --- a/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java +++ b/webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java @@ -18,10 +18,7 @@ import us.codecraft.webmagic.utils.UrlUtils; import java.io.Closeable; import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.UUID; +import java.util.*; import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -103,6 +100,8 @@ public class Spider implements Runnable, Task { private final AtomicLong pageCount = new AtomicLong(0); + private Date startTime; + /** * create a spider with pageProcessor. * @@ -288,6 +287,7 @@ public class Spider implements Runnable, Task { } startRequests.clear(); } + startTime = new Date(); } @Override @@ -685,6 +685,10 @@ public class Spider implements Runnable, Task { return this; } + public Date getStartTime() { + return startTime; + } + public Scheduler getScheduler() { return scheduler; } diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/monitor/SpiderStatus.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/monitor/SpiderStatus.java index af08526..a87c040 100644 --- a/webmagic-extension/src/main/java/us/codecraft/webmagic/monitor/SpiderStatus.java +++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/monitor/SpiderStatus.java @@ -5,6 +5,7 @@ import org.slf4j.LoggerFactory; import us.codecraft.webmagic.Spider; import us.codecraft.webmagic.scheduler.MonitorableScheduler; +import java.util.Date; import java.util.List; /** @@ -76,4 +77,15 @@ public class SpiderStatus implements SpiderStatusMXBean { spider.stop(); } + @Override + public Date getStartTime() { + return spider.getStartTime(); + } + + @Override + public int getPagePerSecond() { + int runSeconds = (int) (System.currentTimeMillis() - getStartTime().getTime()) / 1000; + return getSuccessPageCount() / runSeconds; + } + } diff --git a/webmagic-extension/src/main/java/us/codecraft/webmagic/monitor/SpiderStatusMXBean.java b/webmagic-extension/src/main/java/us/codecraft/webmagic/monitor/SpiderStatusMXBean.java index cc0f040..e49ff8f 100644 --- a/webmagic-extension/src/main/java/us/codecraft/webmagic/monitor/SpiderStatusMXBean.java +++ b/webmagic-extension/src/main/java/us/codecraft/webmagic/monitor/SpiderStatusMXBean.java @@ -1,5 +1,6 @@ package us.codecraft.webmagic.monitor; +import java.util.Date; import java.util.List; /** @@ -27,4 +28,8 @@ public interface SpiderStatusMXBean { public void start(); public void stop(); + + public Date getStartTime(); + + public int getPagePerSecond(); }