Author: dogacan Date: Mon Jan 12 05:37:23 2009 New Revision: 733747 URL: http://svn.apache.org/viewvc?rev=733747&view=rev Log: NUTCH-652 - AdaptiveFetchSchedule#setFetchSchedule doesn't calculate fetch interval correctly
Modified: lucene/nutch/trunk/CHANGES.txt lucene/nutch/trunk/src/java/org/apache/nutch/crawl/AdaptiveFetchSchedule.java Modified: lucene/nutch/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/lucene/nutch/trunk/CHANGES.txt?rev=733747&r1=733746&r2=733747&view=diff ============================================================================== --- lucene/nutch/trunk/CHANGES.txt (original) +++ lucene/nutch/trunk/CHANGES.txt Mon Jan 12 05:37:23 2009 @@ -305,6 +305,9 @@ XML and JSON. (kubes) 114. NUTCH-442 - Integrate Solr/Nutch. (dogacan, original version by siren) + +115. NUTCH-652 - AdaptiveFetchSchedule#setFetchSchedule doesn't calculate + fetch interval correctly. (dogacan) Release 0.9 - 2007-04-02 Modified: lucene/nutch/trunk/src/java/org/apache/nutch/crawl/AdaptiveFetchSchedule.java URL: http://svn.apache.org/viewvc/lucene/nutch/trunk/src/java/org/apache/nutch/crawl/AdaptiveFetchSchedule.java?rev=733747&r1=733746&r2=733747&view=diff ============================================================================== --- lucene/nutch/trunk/src/java/org/apache/nutch/crawl/AdaptiveFetchSchedule.java (original) +++ lucene/nutch/trunk/src/java/org/apache/nutch/crawl/AdaptiveFetchSchedule.java Mon Jan 12 05:37:23 2009 @@ -63,7 +63,7 @@ private boolean SYNC_DELTA; - private float SYNC_DELTA_RATE; + private double SYNC_DELTA_RATE; public void setConf(Configuration conf) { super.setConf(conf); @@ -95,16 +95,19 @@ case FetchSchedule.STATUS_UNKNOWN: break; } - datum.setFetchInterval(interval); if (SYNC_DELTA) { // try to synchronize with the time of change - long delta = fetchTime - modifiedTime; + long delta = (fetchTime - modifiedTime) / 1000L; if (delta > interval) interval = delta; - refTime = fetchTime - Math.round(delta * SYNC_DELTA_RATE); + refTime = fetchTime - Math.round(delta * SYNC_DELTA_RATE * 1000); + } + if (interval < MIN_INTERVAL) { + interval = MIN_INTERVAL; + } else if (interval > MAX_INTERVAL) { + interval = MAX_INTERVAL; } - if (interval < MIN_INTERVAL) interval = MIN_INTERVAL; - if (interval > MAX_INTERVAL) interval = MAX_INTERVAL; - datum.setFetchTime(refTime + (long)datum.getFetchInterval() * 1000 ); + datum.setFetchInterval(interval); + datum.setFetchTime(refTime + Math.round(interval * 1000.0)); datum.setModifiedTime(modifiedTime); return datum; }