Changeset 1140 for OAIHarvester


Ignore:
Timestamp:
02/22/11 14:52:02 (13 years ago)
Author:
oschonef
Message:
  • make maximum network retry count configurable through Harvester
  • re-naming internal methods
Location:
OAIHarvester/trunk/OAIHarvester/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/Harvester.java

    r1137 r1140  
    2525    public void shutdown();
    2626
     27    public int getMaxNetworkRetryCount();
     28   
     29    public void setMaxNetworkRetryCount(int maxNetworkRetryCount);
     30
    2731} // interface Harvester
  • OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/impl/AbstractHarvester.java

    r1137 r1140  
    1818
    1919abstract class AbstractHarvester implements Harvester {
     20    private final int DEFAULT_MAX_NETWORK_RETRY_COUNT = 5;
     21    protected int maxNetworkRetryCount = DEFAULT_MAX_NETWORK_RETRY_COUNT;
    2022    private final XMLInputFactory factory;
    2123//    private final XMLValidationSchema schema;
     
    8385    }
    8486
     87    @Override
     88    public final int getMaxNetworkRetryCount() {
     89        return maxNetworkRetryCount;
     90    }
     91   
     92    @Override
     93    public final void setMaxNetworkRetryCount(int maxNetworkRetryCount) {
     94        if (maxNetworkRetryCount < 1) {
     95            throw new IllegalArgumentException(
     96                    "invalid value for maxNetworkRetryCount: " +
     97                            maxNetworkRetryCount);
     98        }
     99        this.maxNetworkRetryCount = maxNetworkRetryCount;
     100    }
     101
    85102    abstract void doRunJob(HarvestJobImpl job) throws HarvesterException;
    86103
  • OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/impl/HarvestJobImpl.java

    r1137 r1140  
    5757    private Task task = Task.IDENTIFY_REPOSITORY;
    5858    private long delayUntil = 0;
    59     private int networkTry = 0;
     59    private int networkRetryCount = 0;
    6060    private List<String> prefixWorklist = null;
    6161    private String resumptionToken = null;
     
    348348
    349349    boolean isHarvestingNewPrefix() {
    350         return (resumptionToken == null) && (networkTry == 0);
    351     }
    352 
    353     int incNetworkRequestCount() {
    354         return ++networkTry;
    355     }
    356    
    357     int getNetworkRequestCount() {
    358         return networkTry;
    359     }
    360 
    361     void resetNetworkRequestCount() {
     350        return (resumptionToken == null) && (networkRetryCount == 0);
     351    }
     352
     353    int incNetworkRetryCount() {
     354        return ++networkRetryCount;
     355    }
     356   
     357    int getNetworkRetryCount() {
     358        return networkRetryCount;
     359    }
     360
     361    void resetNetworkRetryCount() {
    362362        delayUntil = 0;
    363         networkTry = 0;
     363        networkRetryCount = 0;
    364364    }
    365365
  • OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/impl/HarvestWorker.java

    r1139 r1140  
    122122
    123123            if (ok) {
    124                 job.resetNetworkRequestCount();
     124                job.resetNetworkRetryCount();
    125125            } else {
    126126                if (delay > 0) {
    127127                    job.setNetworkRequestDelay(delay);
    128128                }
    129                 if (job.incNetworkRequestCount() >= maxNetworkTries) {
     129                if (job.incNetworkRetryCount() >= maxNetworkTries) {
    130130                    throw new HarvesterException("too many network retries: " +
    131                             job.getNetworkRequestCount());
     131                            job.getNetworkRetryCount());
    132132                }
    133133            }
  • OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/impl/ParallelHarvester.java

    r1137 r1140  
    3030                            System.err.println(getId() + " process job " +
    3131                                    job.getId());
    32                             worker.process(job, 15);
     32                            worker.process(job, maxNetworkRetryCount);
    3333                            if (job.isRunning()) {
    3434                                if (job.getDelay(TimeUnit.MILLISECONDS) > 0) {
  • OAIHarvester/trunk/OAIHarvester/src/main/java/eu/clarin/cmdi/oai/harvester/impl/SimpleHarvester.java

    r1137 r1140  
    4747
    4848        while (job.isRunning()) {
    49             worker.process(job, 15);
     49            worker.process(job, maxNetworkRetryCount);
    5050            long delay = -1;
    5151            while (job.isRunning() &&
     
    5353                try {
    5454                    System.err.println(job.getId() + ": (" +
    55                             job.getNetworkRequestCount() + ") waiting " +
     55                            job.getNetworkRetryCount() + ") waiting " +
    5656                            delay + " ...");
    5757                    Thread.sleep(delay);
  • OAIHarvester/trunk/OAIHarvester/src/test/java/eu/clarin/cmdi/oai/harvester/HarvesterTest.java

    r1137 r1140  
    189189
    190190        Harvester harvester = SimpleHarvester.newInstance();
     191        harvester.setMaxNetworkRetryCount(16);
    191192        try {
    192193            HarvestJob job = harvester.createJob(repos, handler);
Note: See TracChangeset for help on using the changeset viewer.