## net.i2p.router.networkdb.kademlia
Class HarvesterJob

    java.lang.Object
      net.i2p.router.JobImpl
          net.i2p.router.networkdb.kademlia.HarvesterJob

All Implemented Interfaces:
  Job

     class HarvesterJob

extends JobImpl

Simple job to try to keep our peer references up to date by aggressively requerying them every few minutes. This isn't useful for normal operation, but instead helps with gathering operational data on the network - while old RouterInfo refs are sufficient for functionality, newer ones let us harvest the published peer statistics much more frequently. By default this job is disabled (it runs but doesn't do anything), but if the router config option 'netDb.shouldHarvest' is set to 'true', then every minute it'll ask the 5 oldest peers to send their latest info (unless the info is less than 30 minutes old).

Field Summary
`static String` `PROP_ENABLED`

Constructor Summary
`HarvesterJob(RouterContext context, KademliaNetworkDatabaseFacade facade)`

Method Summary
`String` `getName()` Descriptive name of the task
`void` `runJob()` Actually perform the task.

Methods inherited from class net.i2p.router.JobImpl
`dropped, getAddedBy, getContext, getJobId, getMadeReadyOn, getTiming, madeReady, requeue, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### PROP_ENABLED

    public static final String PROP_ENABLED

See Also:
  Constant Field Values

Constructor Detail

### HarvesterJob

    public HarvesterJob(RouterContext context,
                        KademliaNetworkDatabaseFacade facade)

Method Detail

### getName

    public String getName()

  Description copied from interface: `Job`
  Descriptive name of the task

### runJob

    public void runJob()

  Description copied from interface: `Job`
  Actually perform the task. This call blocks until the Job is complete.