Author: j16sdiz
Date: 2008-12-26 10:07:04 +0000 (Fri, 26 Dec 2008)
New Revision: 24793

Modified:
   trunk/plugins/XMLSpider/XMLSpider.java
Log:
perfetch more pages for start

Modified: trunk/plugins/XMLSpider/XMLSpider.java
===================================================================
--- trunk/plugins/XMLSpider/XMLSpider.java      2008-12-26 10:06:51 UTC (rev 
24792)
+++ trunk/plugins/XMLSpider/XMLSpider.java      2008-12-26 10:07:04 UTC (rev 
24793)
@@ -165,6 +165,7 @@
                                if (running >= config.getMaxParallelRequests())
                                        return;
 
+                               // prefetch 2 * config.getMaxParallelRequests() 
entries
                                if (queuedRequestCache.isEmpty()) {
                                        Query query = db.query();
                                        query.constrain(Page.class);
@@ -173,16 +174,15 @@
                                        @SuppressWarnings("unchecked")
                                        ObjectSet<Page> queuedSet = 
query.execute();
 
-                                       for (int i = 0 ; 
-                                               i < 
config.getMaxParallelRequests() * 2 && queuedSet.hasNext();
-                                               i++) {  // cache 2 * 
maxParallelRequests
-                                               
queuedRequestCache.add(queuedSet.next());
+                                       while (queuedRequestCache.size() < 
config.getMaxParallelRequests() * 2 && queuedSet.hasNext()) {
+                                               Page page = queuedSet.next();
+                                               if 
(!runningFetch.containsKey(page))
+                                                       
queuedRequestCache.add(page);
                                        }
                                }
-                               
queuedRequestCache.removeAll(runningFetch.keySet());
 
+                               // perpare to start
                                toStart = new 
ArrayList<ClientGetter>(config.getMaxParallelRequests() - running);
-
                                Iterator<Page> it = 
queuedRequestCache.iterator();
 
                                while (running + toStart.size() < 
config.getMaxParallelRequests() && it.hasNext()) {

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to