11package us .codecraft .webmagic .monitor ;
22
3- import org .slf4j .Logger ;
4- import org .slf4j .LoggerFactory ;
5- import us .codecraft .webmagic .Request ;
6- import us .codecraft .webmagic .Spider ;
7- import us .codecraft .webmagic .SpiderListener ;
8- import us .codecraft .webmagic .utils .Experimental ;
9- import us .codecraft .webmagic .utils .UrlUtils ;
10-
11- import javax .management .*;
123import java .lang .management .ManagementFactory ;
134import java .util .ArrayList ;
145import java .util .Collections ;
156import java .util .List ;
16- import java .util .concurrent .atomic .AtomicBoolean ;
177import java .util .concurrent .atomic .AtomicInteger ;
188
9+ import javax .management .InstanceAlreadyExistsException ;
10+ import javax .management .JMException ;
11+ import javax .management .MBeanRegistrationException ;
12+ import javax .management .MBeanServer ;
13+ import javax .management .MalformedObjectNameException ;
14+ import javax .management .NotCompliantMBeanException ;
15+ import javax .management .ObjectName ;
16+
17+ import us .codecraft .webmagic .Request ;
18+ import us .codecraft .webmagic .Spider ;
19+ import us .codecraft .webmagic .SpiderListener ;
20+ import us .codecraft .webmagic .utils .Experimental ;
21+ import us .codecraft .webmagic .utils .UrlUtils ;
22+
1923/**
2024 * @author code4crafer@gmail.com
2125 * @since 0.5.0
2226 */
2327@ Experimental
2428public class SpiderMonitor {
2529
26- private static SpiderMonitor INSTANCE = new SpiderMonitor ();
27-
28- private AtomicBoolean started = new AtomicBoolean (false );
29-
30- private Logger logger = LoggerFactory .getLogger (getClass ());
30+ private static final SpiderMonitor INSTANCE = new SpiderMonitor ();
3131
3232 private MBeanServer mbeanServer ;
3333
3434 private String jmxServerName ;
3535
36- private List <SpiderStatusMXBean > spiderStatuses = new ArrayList <SpiderStatusMXBean >();
36+ private List <SpiderStatusMXBean > spiderStatuses = new ArrayList <>();
3737
3838 protected SpiderMonitor () {
3939 jmxServerName = "WebMagic" ;
@@ -51,7 +51,7 @@ public synchronized SpiderMonitor register(Spider... spiders) throws JMException
5151 for (Spider spider : spiders ) {
5252 MonitorSpiderListener monitorSpiderListener = new MonitorSpiderListener ();
5353 if (spider .getSpiderListeners () == null ) {
54- List <SpiderListener > spiderListeners = new ArrayList <SpiderListener >();
54+ List <SpiderListener > spiderListeners = new ArrayList <>();
5555 spiderListeners .add (monitorSpiderListener );
5656 spider .setSpiderListeners (spiderListeners );
5757 } else {
@@ -90,7 +90,7 @@ public void onSuccess(Request request) {
9090 }
9191
9292 @ Override
93- public void onError (Request request ) {
93+ public void onError (Request request , Exception e ) {
9494 errorUrls .add (request .getUrl ());
9595 errorCount .incrementAndGet ();
9696 }
@@ -109,7 +109,6 @@ public List<String> getErrorUrls() {
109109 }
110110
111111 protected void registerMBean (SpiderStatusMXBean spiderStatus ) throws MalformedObjectNameException , InstanceAlreadyExistsException , MBeanRegistrationException , NotCompliantMBeanException {
112- // ObjectName objName = new ObjectName(jmxServerName + ":name=" + spiderStatus.getName());
113112 ObjectName objName = new ObjectName (jmxServerName + ":name=" + UrlUtils .removePort (spiderStatus .getName ()));
114113 mbeanServer .registerMBean (spiderStatus , objName );
115114 }
0 commit comments