more monitor status

master
yihua.huang 2014-04-25 18:10:14 +08:00
parent 018061d2cd
commit 375e64e845
3 changed files with 25 additions and 4 deletions

View File

@ -18,10 +18,7 @@ import us.codecraft.webmagic.utils.UrlUtils;
import java.io.Closeable; import java.io.Closeable;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
@ -103,6 +100,8 @@ public class Spider implements Runnable, Task {
private final AtomicLong pageCount = new AtomicLong(0); private final AtomicLong pageCount = new AtomicLong(0);
private Date startTime;
/** /**
* create a spider with pageProcessor. * create a spider with pageProcessor.
* *
@ -288,6 +287,7 @@ public class Spider implements Runnable, Task {
} }
startRequests.clear(); startRequests.clear();
} }
startTime = new Date();
} }
@Override @Override
@ -685,6 +685,10 @@ public class Spider implements Runnable, Task {
return this; return this;
} }
public Date getStartTime() {
return startTime;
}
public Scheduler getScheduler() { public Scheduler getScheduler() {
return scheduler; return scheduler;
} }

View File

@ -5,6 +5,7 @@ import org.slf4j.LoggerFactory;
import us.codecraft.webmagic.Spider; import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.scheduler.MonitorableScheduler; import us.codecraft.webmagic.scheduler.MonitorableScheduler;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -76,4 +77,15 @@ public class SpiderStatus implements SpiderStatusMXBean {
spider.stop(); spider.stop();
} }
@Override
public Date getStartTime() {
return spider.getStartTime();
}
@Override
public int getPagePerSecond() {
int runSeconds = (int) (System.currentTimeMillis() - getStartTime().getTime()) / 1000;
return getSuccessPageCount() / runSeconds;
}
} }

View File

@ -1,5 +1,6 @@
package us.codecraft.webmagic.monitor; package us.codecraft.webmagic.monitor;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -27,4 +28,8 @@ public interface SpiderStatusMXBean {
public void start(); public void start();
public void stop(); public void stop();
public Date getStartTime();
public int getPagePerSecond();
} }