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.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;
}

View File

@ -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;
}
}

View File

@ -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();
}